我正在調整我在http://www.phpeasystep.com/mysql/10.html找到的一個示例,以更好地滿足我的需求。這是一個結果大表,可以一次編輯而不是編輯單個記錄。我修改了原文以允許傳遞搜索字詞以將表格內容限制爲特定條件。循環更新語法
我將不勝感激一些幫助找到我的錯字。在最初的查詢中,$ sql,我不得不改變引號一點,所以它可以與我的變量$位置。更新一些行後,我點擊提交,然後只看到表頭和提交按鈕。沒有內容,也沒有更新數據庫。最終更新$ sql1與第一個更新非常相似,所以我不確定它爲什麼不起作用。我試圖弄清楚這個例子中的循環結構是否有問題。
<?php
$host="localhost"; // Host name
$username="*****"; // Mysql username
$password="*****"; // Mysql password
$db_name="Inventory"; // Database name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$location=$_POST['search'];
echo $location;
$sql = 'SELECT * FROM `Items` WHERE `Location` = "'.$location.'"';
$result=mysql_query($sql);
// Count table rows
$count=mysql_num_rows($result);
?>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<form name="form1" method="post" action="">
<tr>
<td>
<table width="500" border="0" cellspacing="1" cellpadding="0">
<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Name</strong></td>
<td align="center"><strong>Present Condition</strong></td>
<td align="center"><strong>Color</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center">
<?php $id[]=$rows['ItemNumber']; ?> <?php echo $rows['ItemNumber']; ?>
</td>
<td align="center">
<input name="ItemName[]" type="varchar" id="ItemName" value="<?php echo $rows['ItemName']; ?>">
</td>
<td align="center">
<select name="ItemCondition[]" id="ItemCondition">
<option value="">Select...</option>
<option value="Excellent">Excellent !</option>
<option value="Good">Good</option>
<option value="OK">OK</option>
<option value="Poor">Below Average</option>
<option value="Change">Replace</option>
</select>
</td>
<td align="center">
<input name="ItemColor[]" type="varchar" id="ItemColor" value="<?php echo $rows['ItemColor']; ?>">
</td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>
<?php
// Check if button name "Submit" is active, do this
if($Submit){
for($i=0;$i<$count;$i++){
$sql1="UPDATE `Items` SET ItemName='$ItemName[$i]', ItemCondition='$ItemCondition[$i]', ItemColor='$ItemColor[$i]' WHERE ItemNumber='$id[$i]'";
$result1=mysql_query($sql1);
echo $i;
}
}
if($result1){
header("location:inventory.php");
}
mysql_close();
?>
表格很簡單。 ItemNumber(鍵),ItemName,ItemCondition,ItemColor。目前它查詢項目列表,正確顯示每個項目的值,但無法更新。我很難過。
百萬分先謝謝。
[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-04-22 21:49:07
你從哪裏得到'$ ItemName','$ ItemCondition'和'$ ItemColor'數組?除了最終更新查詢之外,我無法在任何地方看到它們? – 2013-04-22 22:05:25