所以我一直在爲我的發票管理系統的工作,一直在修改mysql數據庫更新函數,但我似乎無法得到它實際編輯我的mysql數據庫中的記錄,原因不明。這是我的代碼爲我的edit.php頁PHP窗體更新mysql數據庫沒有完成更新
<?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提前給大家。
你'SELECT'語句沒有一個'WHERE'條款,所以它從你的'invoice'拉的所有行表。你的php代碼的'while'循環將盡職盡責。請嘗試添加一個'WHERE'子句並讓我們知道發生了什麼。 – 2014-09-22 12:34:55
好吧,由於那個明顯的SQL注入漏洞,我懷疑你不必擔心太長時間在數據庫中有這麼多記錄。你可能想開始閱讀這裏:http://php.net/manual/en/security.database.sql-injection.php – David 2014-09-22 12:36:38
增加了這個$ sql =「選擇*從發票WHERE編號='$ id'」 ;但編輯表單字段消失 – WebEducate 2014-09-22 12:40:39