所以我一直在修改我的发票管理系统的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提前大家。
答案 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;