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

mehrere Updates ausführen

profimong

Neues Mitglied
Ich bin absoluter Anfänger und habe folgende Frage.

Ich schreibe aus einem Formular Daten in eine SQL-Datenbank. In Diese DB sind verschiedene Personen welche ich über die ID anspreche.
In meinem Code wird aber nur der letzte Datensatz gespeichert die ersten beiden nicht. wie verknüpfe ich diese drei updates denn das Problem liegt sicher daran, dass ich immer wieder mit $sql beginne und er deshalb nur den letzten nimmt. Vermutlich löst man das mit dem Update in meinem Beispiel mit einer Schleife denn wenn es 1000 Leute sind hat wirds bisschen viel aber das ist mir leider noch zu hoch also bitte nicht meckern
icon_wink.gif


PHP:
$sql = "UPDATE $table SET SpieleG =  SpieleG + '". $_POST['Spiele21']."',  
ToreG = ToreG +'". $_POST['Tore21']."', 
MinutenG = MinutenG +'". $_POST['Minuten21']."', 
GelbeG = Gelbe +'". $_POST['Gelbe21']."', 
RoteG = Rote +'". $_POST['Rote21']."', 
Spiele =  Spiele + '". $_POST['Spiele21']."',  
Tore = Tore +'". $_POST['Tore21']."', 
Minuten = Minuten +'". $_POST['Minuten21']."', 
Gelbe = Gelbe +'". $_POST['Gelbe21']."', 
Rote = Rote +'". $_POST['Rote21']."' 
WHERE id='21'"; 


$sql = "UPDATE $table SET SpieleG =  SpieleG + '". $_POST['Spiele22']."',  
ToreG = ToreG +'". $_POST['Tore22']."', 
MinutenG = MinutenG +'". $_POST['Minuten22']."', 
GelbeG = Gelbe +'". $_POST['Gelbe22']."', 
RoteG = Rote +'". $_POST['Rote22']."', 
Spiele =  Spiele + '". $_POST['Spiele22']."',  
Tore = Tore +'". $_POST['Tore22']."', 
Minuten = Minuten +'". $_POST['Minuten22']."', 
Gelbe = Gelbe +'". $_POST['Gelbe22']."', 
Rote = Rote +'". $_POST['Rote22']."' 
WHERE id='22'"; 


$sql = "UPDATE $table SET 
SpieleG =  SpieleG + '". $_POST['Spiele23']."',  
ToreG = ToreG +'". $_POST['Tore23']."', 
MinutenG = MinutenG +'". $_POST['Minuten23']."', 
GelbeG = Gelbe +'". $_POST['Gelbe23']."', 
RoteG = Rote +'". $_POST['Rote23']."', 
Spiele =  Spiele + '". $_POST['Spiele23']."',  
Tore = Tore +'". $_POST['Tore23']."', 
Minuten = Minuten +'". $_POST['Minuten23']."', 
Gelbe = Gelbe +'". $_POST['Gelbe23']."', 
Rote = Rote +'". $_POST['Rote23']."' 
WHERE id='23'";
 
Du brauchst diese Funktion um dein SQL-Statement auch an die Datenbank zu schicken. Soetwas sehe ich nicht in deinem Code, daher habe ich dir den Tipp gegeben dir das anzuschauen. Beispiele findest Du auf der von dir verlinkten Manual-Seite.
 
Hatte nur ein Teil meines Codes gepostet. Hab es drin

PHP:
<?php
if (!isset($_POST['abschicken'])) {
    include('eintrag.htm');
    exit; }

$server    = "localhost";
$user    = "user";
$pass    = "pass";
$database = "db";
$table    = "Statistik";

$verbindung = mysql_connect($server, $user, $pass)
    or die ("verbindung zu sql geht nicht");

mysql_select_db($database, $verbindung);

$sql = "UPDATE $table SET SpieleG =  SpieleG + '". $_POST['Spiele21']."', 
ToreG = ToreG +'". $_POST['Tore21']."',
MinutenG = MinutenG +'". $_POST['Minuten21']."',
GelbeG = Gelbe +'". $_POST['Gelbe21']."',
RoteG = Rote +'". $_POST['Rote21']."',
Spiele =  Spiele + '". $_POST['Spiele21']."', 
Tore = Tore +'". $_POST['Tore21']."',
Minuten = Minuten +'". $_POST['Minuten21']."',
Gelbe = Gelbe +'". $_POST['Gelbe21']."',
Rote = Rote +'". $_POST['Rote21']."'
WHERE id='21'";

$sql = "UPDATE $table SET SpieleG =  SpieleG + '". $_POST['Spiele22']."', 
ToreG = ToreG +'". $_POST['Tore22']."',
MinutenG = MinutenG +'". $_POST['Minuten22']."',
GelbeG = Gelbe +'". $_POST['Gelbe22']."',
RoteG = Rote +'". $_POST['Rote22']."',
Spiele =  Spiele + '". $_POST['Spiele22']."', 
Tore = Tore +'". $_POST['Tore22']."',
Minuten = Minuten +'". $_POST['Minuten22']."',
Gelbe = Gelbe +'". $_POST['Gelbe22']."',
Rote = Rote +'". $_POST['Rote22']."'
WHERE id='22'";

$sql = "UPDATE $table SET
SpieleG =  SpieleG + '". $_POST['Spiele23']."', 
ToreG = ToreG +'". $_POST['Tore23']."',
MinutenG = MinutenG +'". $_POST['Minuten23']."',
GelbeG = Gelbe +'". $_POST['Gelbe23']."',
RoteG = Rote +'". $_POST['Rote23']."',
Spiele =  Spiele + '". $_POST['Spiele23']."', 
Tore = Tore +'". $_POST['Tore23']."',
Minuten = Minuten +'". $_POST['Minuten23']."',
Gelbe = Gelbe +'". $_POST['Gelbe23']."',
Rote = Rote +'". $_POST['Rote23']."'
WHERE id='23'";



$ausgabe = "gespeichert!"; 

mysql_query($sql) or die ("sql eintrag fehler");

mysql_close($verbindung);
echo $ausgabe;
?>

Das Update-Commando selber funktioniert es wird aber leider nur das Update des letzten
PHP:
$sql = "UPDATE $table SET
SpieleG =  SpieleG + '". $_POST['Spiele23']."', 
ToreG = ToreG +'". $_POST['Tore23']."',
MinutenG = MinutenG +'". $_POST['Minuten23']."',
GelbeG = Gelbe +'". $_POST['Gelbe23']."',
RoteG = Rote +'". $_POST['Rote23']."',
Spiele =  Spiele + '". $_POST['Spiele23']."', 
Tore = Tore +'". $_POST['Tore23']."',
Minuten = Minuten +'". $_POST['Minuten23']."',
Gelbe = Gelbe +'". $_POST['Gelbe23']."',
Rote = Rote +'". $_POST['Rote23']."'
WHERE id='23'";
ausgeführt die beiden davor werden nicht übernommen. Wie kann ich denn die Updates zusammenfassen das Sie alle in meine DB gespeichert werden.
 
Das Problem ist, dass du die drei Variablen, in der die SQL Anweisungen vorkommen, gleich benennst.
Der letzte überschreibt die davor.

Du hast jetzt folgende Möglichkeit:
PHP:
$sql1 ="UPDATE $table SET SpieleG =  SpieleG + '". $_POST['Spiele21']."', 
ToreG = ToreG +'". $_POST['Tore21']."',
MinutenG = MinutenG +'". $_POST['Minuten21']."',
GelbeG = Gelbe +'". $_POST['Gelbe21']."',
RoteG = Rote +'". $_POST['Rote21']."',
Spiele =  Spiele + '". $_POST['Spiele21']."', 
Tore = Tore +'". $_POST['Tore21']."',
Minuten = Minuten +'". $_POST['Minuten21']."',
Gelbe = Gelbe +'". $_POST['Gelbe21']."',
Rote = Rote +'". $_POST['Rote21']."'
WHERE id='21'";

$sql2 = "UPDATE $table SET SpieleG =  SpieleG + '". $_POST['Spiele22']."', 
ToreG = ToreG +'". $_POST['Tore22']."',
MinutenG = MinutenG +'". $_POST['Minuten22']."',
GelbeG = Gelbe +'". $_POST['Gelbe22']."',
RoteG = Rote +'". $_POST['Rote22']."',
Spiele =  Spiele + '". $_POST['Spiele22']."', 
Tore = Tore +'". $_POST['Tore22']."',
Minuten = Minuten +'". $_POST['Minuten22']."',
Gelbe = Gelbe +'". $_POST['Gelbe22']."',
Rote = Rote +'". $_POST['Rote22']."'
WHERE id='22'";

$sql3 = "UPDATE $table SET
SpieleG =  SpieleG + '". $_POST['Spiele23']."', 
ToreG = ToreG +'". $_POST['Tore23']."',
MinutenG = MinutenG +'". $_POST['Minuten23']."',
GelbeG = Gelbe +'". $_POST['Gelbe23']."',
RoteG = Rote +'". $_POST['Rote23']."',
Spiele =  Spiele + '". $_POST['Spiele23']."', 
Tore = Tore +'". $_POST['Tore23']."',
Minuten = Minuten +'". $_POST['Minuten23']."',
Gelbe = Gelbe +'". $_POST['Gelbe23']."',
Rote = Rote +'". $_POST['Rote23']."'
WHERE id='23'";

mysql_query($sql1) or die(mysql_error());
mysql_query($sql2) or die(mysql_error());
mysql_query($sql3) or die(mysql_error());

PHP:
$sql = mysql_query("UPDATE $table SET SpieleG =  SpieleG + '".  $_POST['Spiele21']."', 
ToreG = ToreG +'". $_POST['Tore21']."',
MinutenG = MinutenG +'". $_POST['Minuten21']."',
GelbeG = Gelbe +'". $_POST['Gelbe21']."',
RoteG = Rote +'". $_POST['Rote21']."',
Spiele =  Spiele + '". $_POST['Spiele21']."', 
Tore = Tore +'". $_POST['Tore21']."',
Minuten = Minuten +'". $_POST['Minuten21']."',
Gelbe = Gelbe +'". $_POST['Gelbe21']."',
Rote = Rote +'". $_POST['Rote21']."'
WHERE id='21'");
// ...

Bleibt es denn immer bei den drei Statemants?
Die ID ist ja sicherlich auch dynamisch?

Ich würde es in einer Schleife machen.
 
Zuletzt bearbeitet:
Mal schauen, was die anderen sagen.
Aber die einfachste Möglichkeit wäre, nicht alles auf einmal abzutippen.
Sondern erst das erste Spiel, dann abschicken. Und das nächste Spiel.

Ansonsten doch eher eine Schleife, was von meiner Seite aus auch nur eine Idee ist. Vielleicht haben die anderen eine bessere bzw. können sagen, wie die aussehen sollte. (Edit: Weil's jetzt zu komplex wäre)
 
Zuletzt bearbeitet:
Zurück
Oben