** Hallo Ich habe an diesem PHP-Code gearbeitet.Update-Datenbank von Textfeld basierend auf der Checkbox
Ich möchte die Menge aktualisieren, die zu der aktivierten Box gehört. aber das genaue Problem mit meinem Code ist: wenn ich zum Beispiel 3 Kontrollkästchen habe und wenn ich die Menge für sie alle in der gleichen Zeit die Updates sind korrekt durchgeführt und wenn ich nur die erste Menge ohne die anderen 2 das Update aktualisieren ist auch richtig gemacht, aber wenn ich die zweite oder die dritte allein nicht in der gleichen Zeit aktualisiere, nimmt es die Menge des alten Wertes der ersten: "" ( so wie kann ich meinen Code ändern, damit ich alle Elemente aktualisieren kann . oder nur die markierten Elemente
hier ist mein Code die Checkbox der mit der Menge anzuzeigen
in der Datei 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>
und hier ist die Ausfürung der update in der Datei 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"
?>
i weiß nicht, wie das Problem zu beheben! aber ich denke, mein Hauptproblem ist, dass alle Textfelder den gleichen Namen haben. also, wenn ich es an die andere Datei für die Durchführung senden, nehmen Sie es einfach so, wie es das letzte ist.
mir bitte helfen: $
* AKTUALISIERT *
* Die Lösung *
so löste ich das Problem meines Codes und seine brauchte nur die Textbox deaktiviert werden, bevor das Kontrollkästchen aktiviert wird, damit das Array keinen Nullindex hat..Nur die eingegebenen Werte ohne Nullwerte haben :))
stattdessen die Abfrage auszuführen, verwenden Sie einen 'echo„Update Rüstungsset Anzahl =‘:
und dann in Ihre Aktualisierungs-Abfrage ändern ". $ qun [i]." 'wo Id =' ". $ options [$ i]." '";' und die Ausgabe auch in die Frage stellen. – hjpotter92