**您好 我一直在處理這個php代碼。通過基於複選框的文本框更新數據庫的
我想更新屬於複選框的數量。 但我的代碼確切的問題是:如果我有例如3個複選框,當我在同一時間輸入數量爲他們所有更新都正確完成,如果我只更新第一個數量與其他2更新也是正確完成的,但是當我單獨更新第二個或第三個不同時,它需要第一個舊值的數量:「」( 因此,如何更改我的代碼以便我可以更新所有項目。或僅選中項
這裏是我的代碼數量來顯示覆選框的
在文件manage_items.php:**
<?php
$DB_HOST ='localhost';
$DB_USER ='root';
$DB_PASSWORD='';
$DB_DATABASE='dks';
$con= mysql_connect($DB_HOST ,$DB_USER , $DB_PASSWORD);
if(!$con){
die('Failed to connect to server :'.mysql_error());
}
$db=mysql_select_db($DB_DATABASE);
if(!$db){
die("unable to select database");
}?>
$qry="SELECT * FROM catalog";
$result= mysql_query($qry);
if($result){
while($info = mysql_fetch_array($result))
{
print "<h3><a href=\"\#\"> cat:".$info['name']."</a></h3><div>";
$qryitem="SELECT * FROM item WHERE Id=". $info['Cid'];
$resultitem=mysql_query($qryitem);
if($resultitem){
?>
<form method="post" action="manage_item_action.php">
<?php
while($info=mysql_fetch_array($resultitem))
{
?>
<input type="checkbox" name="op[]" value="<?php echo $info['Id'];?>"/><?php echo $info['name'];?>
<label> Quantity <input type="text" name="Quantity[]" value="<?php echo $info['Quantity'];?>"/></label>
<br/>
<?php
}
}
else echo "There are no items.";
print "</div>";
}
}
?>
</div>
<input type="submit" value="update" name="submit"/>
</form>
,這裏是更新 的excution在文件manage_item_action.php
<?php
$DB_HOST ='localhost';
$DB_USER ='root';
$DB_PASSWORD='';
$DB_DATABASE='dks';
$con= mysql_connect($DB_HOST ,$DB_USER , $DB_PASSWORD);
if(!$con){
die('Failed to connect to server :'.mysql_error());
}
$db=mysql_select_db($DB_DATABASE);
if(!$db){
die("unable to select database");
}
$options=$_POST['op'];
$qun=$_POST['Quantity'];
$size =count($options);
for($i =0; $i<$size; $i++)
{
//$qryop="UPDATE item SET Quantity =".$qun."WHERE Id =".$options[$i]."';";
$resultop=mysql_query("update item set Quantity='".$qun[i]."'where Id='".$options[$i]."'");
}
if($resultop){
header("location: manage_items.php");}
else echo "there was an error"
?>
我不知道如何解決這個問題! 但我認爲我的主要問題是所有的文本框都有相同的名稱。 所以當我把它發送到另一個文件ecution它只是把它,因爲它是最後一個。
幫我請:$
* 修訂 *
* 解決方案 *
所以我解決我的代碼的問題,其唯一需要的文本框在簽入複選框之前被禁用,因此數組沒有任何空索引。只有輸入的值沒有任何空值 :))
代替執行查詢,使用'回聲「更新項目設定數量=」 「。$ qun [i]。」'其中Id ='「。$ options [$ i]。」'「;'並且將輸出也放在問題中。 – hjpotter92 2012-04-10 08:09:05