2017-04-20 3 views
0

Ich habe Probleme, den Wert in meine Datenbank zu aktualisieren. Das Problem hier ist, dass, wenn ich die Daten für alle Zeilen aktualisiere, die Daten von der letzten Reihe in die erste Reihe aktualisiert werden. Andere Zeilen werden nicht aktualisiert, einschließlich der letzten Zeile. Unten ist mein Code für die Aktualisierung ...Aktualisiere Wert in Datenbank

$sql = "SELECT * FROM product where username = '$username'"; 
$result = mysqli_query($con, $sql) or die(mysqli_error($con)); 
$rows = mysqli_fetch_array($result); 
$id = $rows['pro_id']; 
$boxid = $rows['box_id']; 
$name = $_POST['pro_name']; 
$quan = $_POST['pro_quan']; 
$sold = $_POST['pro_sold']; 
for ($i = 0; $i < count($_POST['pro_name']); $i++) 
{ 
    $sql = "UPDATE product 
      SET pro_name = '" . $name[$i] . "', 
      pro_quan = " . $quan[$i] . ", 
      pro_sold = " . $sold[$i] . " 
      WHERE pro_id = " . $id . " 
      AND box_id = '" . $boxid . "' "; 

    $results=mysqli_query($con, $sql); 
} 

Also, ich habe keine Ideen, was falsch gelaufen. Danke für Ihre Hilfe

+0

bedeutet, dass, wenn ich alle Zeilen in der Datenbank aktualisieren mag, mit der Abfrage, die Daten in den letzten Zeilen der Tabelle in der ersten Zeile aktualisiert werden. Das bedeutet, dass die Daten der ersten Zeile durch die aktualisierten Daten der letzten Zeile ersetzt werden. – June

+0

Entsprechend Ihrer Anforderung habe ich Folgendes: "Beim Aktualisieren werden die letzten Datensatzdaten in den ersten Datensatz in der Datenbank aktualisiert Was wolltest du sagen? Ist das dein Problem? " Klären Sie auf, damit Sie eine Lösung für dasselbe bereitstellen können. Deine Frage ist nicht so klar. – prava

+0

Ja, das ist das Problem, vor dem ich stehe. Und die anderen Zeilen Daten werden nicht aktualisiert – June

Antwort

0

Sie müssen das Ergebnis in eine Schleife platzieren. So etwas:

$sql = "SELECT * FROM product where username = '$username'"; 
    $result = mysqli_query($con, $sql) or die(mysqli_error($con)); 

    while ($rows = mysqli_fetch_array($result)) 
    { 
     $id = $rows['pro_id']; 
     $boxid = $rows['box_id']; 
     $name = $_POST['pro_name']; 
     $quan = $_POST['pro_quan']; 
     $sold = $_POST['pro_sold']; 
     for ($i = 0; $i < count($_POST['pro_name']); $i++) 
     { 
      $sql = "UPDATE product 
       SET pro_name = '" . $name[$i] . "', 
       pro_quan = " . $quan[$i] . ", 
       pro_sold = " . $sold[$i] . " 
       WHERE pro_id = " . $id . " 
       AND box_id = '" . $boxid . "' "; 

      $results = mysqli_query($con, $sql); 
     } 
    } 
+0

mein Ergebnis befindet sich in der Schleife – June

+0

Sie müssen Zeilen in While-Schleife abrufen, schauen Sie sich meinen Code an. – Hamlet

Verwandte Themen