$_POST Arrayl mit foreach in DB schreiben

DonDemf

Erfahrenes Mitglied
Heyho,
also ich habe durch ein formular drei werte in eine POST Array gespeichert, diese werte sind definitiv, auch in der reihenfolge, diese:

Barrios, Götze, Hummels

nun habe ich diesen code:
PHP:
$toschutzheim[] = array();
$torschutzheim = $_POST["torschutzheim"];


for ($i = 1; $i <= intval($torschutzheim); $i++) {
   foreach($torschutzheim as $schutzheim)
   $aenderntoreheim = "UPDATE fifa_spieler Set
tore = tore+1 WHERE name = '$schutzheim'";
$updatetorschutz = mysql_query($aenderntoreheim);
}

Das Programm erhöht auch die Anzahl der tore um 1, jedoch nicht bei allen drei Spielern, sondern immer nur beim letzten eingegeben, sprich diesesmal bei Hummels.
Wäre die reihenfolge Hummels, Barrios, Götze, würde er bei Götze erhöhen.

erkennt jemand den Fehler?
 
Abgesehen davon, dass du einmal toschutzheim anstatt torschutzheim verwendest hast und ich nicht verstehe, was du mit deiner ersten Zeile erreichen willst, und warum du da zwei Schleifen verschachtelst, die das Gleiche erledigen, habe ich dir hier mal was geschrieben, was dein Problem lösen sollte:
PHP:
if($_POST['torschutzheim'] !== array()) {
  foreach($_POST['torschutzheim'] as $schutzheim) {
    $sql = 'UPDATE fifa_spieler SET tore = tore + 1 WHERE name = "' . $schutzheim . '"';
    mysql_query($sql);
  }
}
Was theoretisch auch funktionieren sollte, wäre folgendes:
PHP:
$sql = 'UPDATE fifa_spieler SET tore = tore + 1 WHERE name IN("' . implode('","', $_POST['torschutzheim']) . '")';
mysql_query($sql);
 
Vielen Dank, wirklich sehr sehr nett hier! Auf dieses Board konnte ich mich bisher immer TOP verlassen, danke!

Nicht wie bei anderen php Boards!

Die zweite Variante funktioniert ebenfalls, jedoch nur, solange es jeden Torschützen nur einmal gibt! Wenn beispielweie Götze zweimal trifft und einmal barrios, bekommen beide nur ein Tor + und nicht götze 2 und barrios 1!


bei der ersten Variante läuft es spitze!
 
Zuletzt bearbeitet:
Zurück