**嗨,我一直在研究这个 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>
这是文件 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"
?>
我不知道如何解决这个问题!但我认为我的主要问题是所有文本框都具有相同的名称。所以当我将它发送到另一个文件进行执行时,它只是把它作为最后一个文件。
请帮帮我:$
*更新*
*解决方案*
所以我解决了我的代码的问题,它只需要在选中复选框之前禁用文本框,因此数组没有任何空索引..只有输入的值没有任何空值:))