PHP表单更新mysql数据库未完成更新

时间:2014-09-22 12:31:35

标签: php mysql database edit

所以我一直在修改我的发票管理系统的mysql数据库更新功能,但我似乎无法让它实际编辑我的mysql数据库中的记录,原因不明。这是我的edit.php页面的代码

<?php 
$con = mysql_connect("localhost", "name", "password");
if (!$con) {
die("Can not connect: " . mysql_error());
}
mysql_select_db("inventory",$con);

if (isset($_POST['update'])){
$UpdateQuery = "UPDATE invoice SET Inv #='$_POST[inv_number]', Date Type='$_POST[date_type]', ID='$_POST[id]' WHERE id='$_POST[id]'";               
mysql_query($UpdateQuery, $con);
};

$sql = "SELECT * FROM invoice";
$myData = mysql_query($sql,$con);
echo "<table border=1>
<tr>
<th>Inv #</th>
<th>Date Type</th>
<th>ID</th>
</tr>";
while($record = mysql_fetch_array($myData)){
echo "<form action=edit.php method=post>";
echo "<tr>";
echo "<td>" . "<input type=text name=inv_number value=" . $record['inv_number'] . " </td>";
echo "<td>" . "<input type=text name=date_type value=" . $record['date_type'] . " </td>";
echo "<td>" . "<input type=text name=id value=" . $record['id'] . " </td>";
echo "<td>" . "<input type=hidden name=hidden value=" . $record['id'] . " </td>";
echo "<td>" . "<input type=submit name=update value=update" . " </td>";
echo "</tr>";
echo "</form>";
}

echo "</table>";
mysql_close($con);

?>

这是我在search.php页面上显示我的记录的按钮。

<a href='edit.php?edit=$row[id]'>edit</a>

当我点击特定记录的编辑按钮进入edit.php页面时,它会显示我表格中的所有记录,这是不理想的,因为我更愿意只查看我要编辑的记录/更新。这两个问题是我无法解决的问题。任何帮助表示赞赏。 Thx提前大家。

2 个答案:

答案 0 :(得分:3)

你的MySQL列名是否真的是Inv#?如果是这样,你需要添加这样的反引号:

`Inv #`

但是看看你的表单,看起来字段名是inv_number。此外,您正在查看所有记录,因为您的select子句没有where修饰符。

答案 1 :(得分:1)

替换你的行:

$sql = "SELECT * FROM invoice";

这一行

    $where = '';
    if(!empty($_GET) && !empty($_GET['edit'])) {
        $where = ' where id='.$_GET['edit'];
    }
    $sql = "SELECT * FROM invoice".$where;