1

我正在制作一个 php 页面,该页面从数据库表中检索数据并将其放入表中供用户通过 MySQLi 命令查看。

我想知道我应该如何处理相反的情况。我希望用户能够在文本框中输入信息,然后单击页面底部的“保存”按钮,该按钮将在保存到数据库之前提示用户“您确定”。如果用户单击“是”,则将新条目插入数据库。

我有以下代码来创建标签和文本框:

<FORM>
ID: <input type="text" name="id"><br />
NM: <input type="text" name="nm"><br />
Company: <input type="text" name="company"><br />
Address: <input type="text" name="address"><br />
City: <input type="text" name="city"><br />
Zip: <input type="text" name="zip"><br />
State: <input type="text" name="state"><br />
Phone: <input type="text" name="phone"><br />
Website: <input type="text" name="web_site"><br />
</FORM>

但是,当涉及到“保存”按钮时,我可以很好地实现该按钮,但是我将如何保存输入到数据库中的信息呢?

我最初的想法是找到用户输入的值。一般来说,我是 PHP 和 WEB 开发的新手,但我需要知道如何获取文本框中文本的值。我是否必须通过 PHP Post 方法筛选所有值?

一旦我有了用户想要输入的信息,我想也许 MySQLi 有一个插入功能,我在这里找到了,http ://php.net/manual/en/mysqli.insert-id.php 。然后它只是一个快速插入,在用户在提示符下给出“是”后它就在数据库中。

我有正确的想法吗?有没有更有效的方法来做到这一点?

任何帮助是极大的赞赏。我四处寻找与我的场景相关的问题和解决方案,但没有。=(

谢谢!

编辑:

这是我在 agentprocess.php 上的代码,操作表单将信息发送到:

<?php
$agent_nm = $_POST['nm']; // gather all the variables
$company = $_POST['company'];
$address = $_POST['address'];
$city = $_POST['city'];
$zip = $_POST['zip'];
$state = $_POST['state'];
$phone = $_POST['phone'];
$web_site = $_POST['web_site'];
$batch_id = $_POST['batch_id']; // added batch id
//connect
$conn = new mysqli('local', 'admin', 'pass', 'DB');
    if(mysqli_connect_errno()) {
        exit('Connect failed: '. mysqli_connect_error());
    }
//generate the query (doesn't add id because id is autoincremented)
$query = "INSERT INTO t_agent VALUES (NULL, " . $agent_nm . ", " . $company . ", " . $address . ", " . $city . ", " . $zip . ", " . $state . ", " . $phone . ", " . $web_site . ", " . $batch_id . ")";

//insert and close.
mysqli_query($conn, $query);
mysqli_close($conn);

尽管这里有代码,但我已经查询了表格并且新条目不存在。我在这里错过了什么吗?

提前致谢!

4

4 回答 4

1

您应该为 PHP/MySQL 使用 PDO 函数

id 字段应该是自动递增的

<?php
$host= "xxx";
$username="xxx";
$password="xxx";
$database="xxx ";

// Gets data from URL parameters

$name = $_POST['nm'];
//Repeate for all other parameters

// Opens a connection to a MySQL server
try {

// DBH means "DB Handle"

// MySQL with PDO_MYSQL
 $DBH = new PDO("mysql:host=$host;dbname=$database", $username, $password);

}
catch(PDOException $e) {
    echo $e->getMessage();
}
// STH means "Statement Handle"
$STH = $DBH->prepare("INSERT INTO mytable ( id,    nm,company,address,city,zip,state,phone,web_site ) values ( NULL,:nm,:company,:address,:city,:zip,:state,:phone,:web_site)");
$STH->bindParam(':name', $name);
//Repeate for all other parameters
$STH->execute();

//# close the connection
$DBH = null;
?>
于 2012-09-27T00:39:55.133 回答
1

你需要使用forms. 是的,使用name元素中的属性,您可以筛选$_POST(例如$_POST['company'])要存储到数据库中的值。这是一个例子。使用 MYSQLi 语句而不是 mysql,如在例如。

于 2012-09-26T21:02:02.940 回答
1

对于 Web 开发初学者来说,这是一个简单但又有点复杂的任务。

所以我会给你一个完整的例子,说明你需要做什么......

要进行保存按钮检查,最快的方法是使用 javascript 确认对话框,如果确认也使用 javascript 提交表单。

Mysql 插入部分很简单,您需要检查是否有通过 $_REQUSET 中的表单提交的数据(这比 $_POST 或 $_GET 更好,因为它可以同时捕获它们。)然后连接到 db 并进行插入询问...

这个例子解释了一切:

http://pastebin.com/thNmsXvn

但是请使用 Smarty 之类的模板引擎,因为在没有模板的情况下在一个文件中执行 php、javascript 和 html 是很糟糕的,而且长期只会给您带来问题。

我认为我在使用 pastebin 的示例中非常清楚,但如果您有任何问题,请随时提出......

补充一点,我已经从 HTML 表单中删除了 ID,因为在 MySQL 中管理 ID 的最佳解决方案是自动增量选项,您可以在创建表并将其设置为特定字段时对其进行配置。通常它是 ID,它必须是一个整数。

于 2012-09-26T21:53:16.253 回答
1

非常简单的示例,将标签标签添加到您输入的标签中并将其放入表单中。

<form method="post" action="process.php" id="myForm" name="myForm" >
<label for="ID">ID</label>:  <input type="text" name="ID" /><br />
<label for="nm">NM:</label> <input type="text" name="nm"><br />
<label for="company">Company:</label> <input type="text" name="company"><br />
<label for="address">Address:</label> <input type="text" name="address"><br />
<label for="city">City</label>: <input type="text" name="city"><br />
<label for="zip">Zip</label>: <input type="text" name="zip"><br />
<label for="state">State</label>: <input type="text" name="state"><br />
<label for="phone">Phone</label>: <input type="text" name="phone"><br />
<label for="web_site">Website</label>: <input type="text" name="web_site"><br />
<input type="submit" name="submit" />// this is your submit button
</form>

在 process.php 页面上

//get your inputs from the form
$ID = $_POST['ID']; 
//do the same for each of the text inputs

然后您可以按照您的描述使用 mysqli 将值插入到数据库中,如果您在问题的 mysqli 部分需要任何帮助,请随时发表评论,因为您在原始问题中发布了链接,所以我没有在此处包含它.

于 2012-09-26T21:17:18.077 回答