Frage foreach-loop -> Update nur letzter Dantensatz

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

StephanBo

Mitglied
28 Januar 2012
175
0
16
Via JSON beziehe ich Daten, die korrekt ausgelesen werden. Aber wenn ich in meiner Datenbank ein Update der Daten durchführen möchte, werden immer nur die Daten des letzten Datensatzes aus der Schleife gespeichert. Hier der verkürzte Code:

foreach($json['events'] as $events){

$id = $events['id'];
$variable = $events['name'];
echo $variable; //nur zum testen

$db->query(" UPDATE Table SET Column = '$variable' WHERE id = '$id' ");

}

Wo ist hier der Fehler?

Wie gesagt, beim echo der $variable ist immer alles korrekt. Aber beim Update überschreibt die letzte Ausgabe in der Schleife alle anderen.
 

m.scatello

Senior HTML'ler
15 Februar 2017
1.418
176
63
Ich würde mir mal nicht nur $variable, sondern auch $id anzeigen lassen.
 

StephanBo

Mitglied
28 Januar 2012
175
0
16
Kann schon wieder gelöscht werden. Der Fehler lag ganz woanders weit vorher im Script. Hat mich paar Stunden gekostet, den zu finden. Trotzdem Danke für die Antwort!
 

m.scatello

Senior HTML'ler
15 Februar 2017
1.418
176
63
Das solltest stets beachten:

Richtig debuggen
  1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
  2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
  3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
  4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
  5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
  6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
  7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
  8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
  9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Werbung: