我已经编写了这段代码供用户编辑一行并在MySQL中进行更新,但无论您选择了哪一行,它总是发布最后一行(有3行)。无法更新用户选择的行
有什么问题?
<?php include("includes/db_connection.php"); ?>
<?php
global $connection;
$sid="s5";
/**select all salesman from store 5**/
$sql ="SELECT * FROM employees WHERE e_type='Salesperson' AND store_assigned='".$sid."';";
/**get the result and put into table, which can be edited by user**/
$result = mysql_query($sql);
echo "<form method='post' action='update_salesman.php'>";
echo "<table border='1'><tr><th>Employee ID</th><th>Name</th><th>Address</th><th>Email</th><th>Job Title</th><th>Store</th><th>Salary</th></tr>";
while ($row = mysql_fetch_assoc($result)) {
echo "<tr><td><input type='text' name='eid' value='".$row['eid']."' readonly /></td>";
echo "<td><input type='text' name='e_name' value='".$row['e_name']."' /></td>";
echo "<td><input type='text' name='e_addr' value='".$row['e_addr']."' /></td>";
echo "<td><input type='text' name='e_email' value='".$row['e_email']."' /></td>";
echo "<td><input type='text' name='e_type' value='".$row['e_type']."' /></td>";
echo "<td><input type='text' name='store_assigned' value='".$row['store_assigned']."'/></td>";
echo "<td><input type='text' name='e_salary' value='".$row['e_salary']."' /></td>";
echo "<td><input type ='submit' value='update' /></td></tr>";
}
echo "</table>";
echo "</form>";
print($sql);
?>
获取发布的数据,并在MySQL数据库更新:
<?php include("includes/db_connection.php"); ?>
<?php
$eid = $_POST['eid'];
$ename = $_POST['e_name'];
$eaddr = $_POST['e_addr'];
$eemail = $_POST['e_email'];
$etype = $_POST['e_type'];
$estore = $_POST['store_assigned'];
$esalary = $_POST['e_salary'];
$sql = "UPDATE employees SET e_name='" . $ename . "', e_addr='" . $eaddr . "', e_email='" . $eemail . "', e_type='" . $etype . "', store_assigned='" . $estore . "', e_salary='" . $esalary . "' WHERE eid='" . $eid . "' ;";
$result = mysql_query($sql);
print("</br>" . $sql);
?>
结果总是这样:
UPDATE employees SET e_name='Norah ', e_addr='111 Melwood,PA', e_email='[email protected]', e_type='Salesperson', store_assigned='s5', e_salary='4000.00' WHERE eid='e334' ;
您将每行的输入框命名为完全相同,在发布后,它们将只覆盖最后一个值 – 2014-11-20 19:39:13
可能的重复[PH p更新脚本,只更新最后一条记录](http://stackoverflow.com/questions/13728744/php-update-script-only-updates-last-record) – andy 2014-11-20 19:44:46
根据乔纳森的评论,你应该追加'[]'到字段名称来创建一个数组。你也可以做'[“。$ row ['eid']。”]'这样你的数组就可以被eid索引。 – 2014-11-20 19:48:46