2016-05-18 19 views
-1

Also habe ich diesen Code, um eine Tabelle in meiner Datenbank zu aktualisieren. $C1, $C2 usw. sind eine Reihe von Array aus früheren Berechnung:Update-Datenbank mit einer Reihe von Array

$Cupdate = array($C1, $C2, $C3, $C4, $C5, $C6); 

    array_unshift($Cupdate, null); 
    $Cfinalupdate = call_user_func_array('array_map', $Cupdate); 

    if(is_array($Cfinalupdate)){ 
     $valuesArr = array(); 
     foreach($Cfinalupdate as $row){ 
      $sqlup = "UPDATE tempselect SET "; 

      $C1up = mysql_real_escape_string($row['0']); 
      $C2up = mysql_real_escape_string($row['1']); 
      $C3up = mysql_real_escape_string($row['2']); 
      $C4up = mysql_real_escape_string($row['3']); 
      $C5up = mysql_real_escape_string($row['4']); 
      $C6up = mysql_real_escape_string($row['5']); 

      $valuesArr[] = "C1 = '$C1up', C2 = '$C2up', C3 = '$C3up', C4 = '$C4up', C5 = '$C5up', C6 = '$C6up'"; 
      $sqlup .= implode(',', $valuesArr); 
      mysql_query($sqlup) or exit(mysql_error()); 
     } 
    } 

Aber Code oben nur die letzte Zeile von $Cfinalupdate setzen, nehme ich möchte, dass meine Datenbank so geworden aktualisieren:

C1 C2 C3 C4 C5 C6 
1 4 2 3 1 5 
6 2 4 1 2 7 
8 1 2 5 4 6 

Aber es stellt sich wie folgt aus, wenn ich in meiner Datenbank-Tabelle zu sehen:

C1 C2 C3 C4 C5 C6 
8 1 2 5 4 6 
8 1 2 5 4 6 
8 1 2 5 4 6 

ich diesen Code zu INSERT eine Reihe von a versucht haben, rray in Datenbank, aber es funktioniert perfekt, aber warum es nur mit der letzten Zeile des Arrays aktualisieren? Danke.

+2

wahrscheinlich, weil keine WHERE-Klausel und es wird die Aktualisierung Ihrer gesamten db –

+0

@ Fred-II- ich sehe, ich warte – lacyeex

+0

und versuchen werde, wenn diese Ihre Gesamt Spalten sind, werden Sie muss eine "id" (int) -Spalte als Beispiel hinzufügen und möglicherweise AI machen. es wird besser auch gehen –

Antwort

0

Es ist einfach ...

Wie Fred -ii- sagt:

Die WHERE Klausel gibt an, welche Datensatz oder Datensätze, die aktualisiert werden soll. Wenn Sie die WHERE-Klausel weglassen, werden alle Datensätze aktualisiert!

Weitere Informationen: W3Schools - SQL UPDATE Statement

+2

Warum sind meine Instinkte immer "knallt". –

+0

Hallo Thomas! Danke, dass du meine Frage beantwortet hast. Also, wie Fred sagte, ich versuche, 'WHERE'-Klausel in meinem Code zu setzen, aber es trat ein neuer Fehler auf 'Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, für die richtige Syntax in der Nähe von 'C1 =' 2.00 ', .... 'Ah ich versuche auch, Tick an C1, C2, etc. zu verwenden. – lacyeex

+0

Bauen Sie Ihre DB neu auf, fügen Sie eine hinzu ID-Feld und schreiben Sie wieder fast alle Ihre Code, im Wesentlichen, weil Sie 'Mysql_ *' verwenden und es ist veraltet, Upgrade auf 'Mysqli_ *'. –

Verwandte Themen