Mysql Update funktioniert nicht!

DonDemf

Erfahrenes Mitglied
Hallo jungs,
ich bin gerade am programmieren einer Datei, welche die Ergebnisse von Spielen in die DB einträgt.

Zum Hintergrund muss man wissen, dass user1 den Spielbericht eingetragen hat und dieser dann in eine tabelle spielbericht2 gespeichert wurde. Das Funktioniert such definitiv!

Jetzt muss User 2 diesen Bericht bestätigen, damit der bericht in die tabelle spierlbericht1 kommt. Den in dieser tabelle stehen die anerkannten Spielberichte.


Das Problem ist nun, er updatet die tabelle spielberichte 1 nicht

PHP:
$id = $_GET["id"];
$action = $_GET["action"];
$abfrage_bericht = "SELECT * FROM spielplan_bundesliga2 WHERE id = '$id'";
$ergebnis_bericht = mysql_query($abfrage_bericht);
$spiel = mysql_fetch_object($ergebnis_bericht);

$abfrageheimimg = 'SELECT * FROM fifa_mannschaften WHERE name = "'.$spiel->heim.'"';
$ergebnisheimimg = mysql_query($abfrageheimimg);
$img1 = mysql_fetch_array($ergebnisheimimg);
// mannschaft auswahl


$abfragegastimg = 'SELECT * FROM fifa_mannschaften WHERE name = "'.$spiel->gast.'"';
$ergebnisgastimg = mysql_query($abfragegastimg);
$img2 = mysql_fetch_array($ergebnisgastimg);

// Mannschaft auswahl
$abfragevorergebnis = 'SELECT * FROM spielplan_bundesliga2 WHERE heim = "'.$spiel->heim.'" AND gast = "'.$spiel->gast.'"';
$ergebnisvorergebnis = mysql_query($abfragevorergebnis);
$verg = mysql_fetch_array($ergebnisvorergebnis);


if($action=="2") {
			
			
			// mannschaft pnkte verteilen



			if($spiel->aktiv==$_SESSION["team"]) {
				
				$aendern = 'UPDATE spielplan_bundesliga1 Set
heimtore = "'.$spiel->heimtore.'", 
gasttore = "'.$spiel->gasttore.'", 
aktiv = "2", 
bericht = "'.$spiel->bericht.'" WHERE id = "'.$id.'"';
$update = mysql_query($aendern);

$aendern2 = 'UPDATE spielplan_bundesliga2 Set
heimtore = "'.$spiel->heimtore.'", 
gasttore = "'.$spiel->gasttore.'", 
aktiv = "2", 
bericht = "'.$spiel->bericht.'" WHERE id = "'.$id.'"';
$update2 = mysql_query($aendern2);

// eintragen mansnchaft punkte
if($verg->heimtore > $verg->gasttore) {
	$aendern5 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
siege = siege + 1,
unentschieden = unentschieden + 0, 
niederlagen = niederlagen + 0, 
tore = tore + '.$verg["heimtore"].', 
gegentore = + '.$verg["gasttore"].', 
punkte = punkte + 3, 
WHERE name = "'.$verg["heim"].'"';
$update5 = mysql_query($aendern5);

$aendern6 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
siege = siege + 0, 
unentschieden = unentschieden + 0, 
niederlagen = niederlagen + 1, 
tore = tore + '.$verg["gasttore"].', 
gegentore = + '.$verg["heimtore"].', 
punkte = punkte + 0, 
WHERE name = "'.$verg["gast"].'"';
$update6 = mysql_query($aendern6);

}
if($verg["heimtore"] = $verg["gasttore"]) {
		$aendern7 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
siege = siege + 0, 
unentschieden = unentschieden + 1, 
niederlagen = niederlagen + 0, 
tore = tore + '.$verg["heimtore"].', 
gegentore = + '.$verg["gasttore"].', 
punkte = punkte + 1, 
WHERE name = "'.$verg["heim"].'"';
$update7 = mysql_query($aendern7);

$aendern8 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
siege = siege + 0, 
unentschieden = unentschieden + 1, 
niederlagen = niederlagen + 0, 
tore = tore + '.$verg["gasttore"].', 
gegentore = + '.$verg["heimtore"].', 
punkte = punkte + 1, 
WHERE name = "'.$verg["gast"].'"';
$update28= mysql_query($aendern8);
}
if($verg["heimtore"] < $verg["gasttore"]) {
	// sieg gast 
		$aendern9 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
siege = siege + 0, 
unentschieden = unentschieden + 0, 
niederlagen = niederlagen + 1, 
tore = tore + '.$verg["heimtore"].', 
gegentore = + '.$verg["gasttore"].', 
punkte = punkte + 0, 
WHERE name = "'.$verg["heim"].'"';
$update9 = mysql_query($aendern9);

$aendern11 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
siege = siege + 1, 
unentschieden = unentschieden + 0, 
niederlagen = niederlagen + 0, 
tore = tore + '.$verg["gasttore"].', 
gegentore = + '.$verg["heimtore"].', 
punkte = punkte + 3, 
WHERE name = "'.$verg["gast"].'"';
$update11 = mysql_query($aendern11);
}


echo '<table width="592" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><h1>Spielbericht bestätigen</h1></td>
  </tr>
  <tr>
    <td>Spielbericht erfolgreich bestätigt!</td>
  </tr>
</table>';



			} else {
				echo '<table width="592" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><h1>Spielbericht bestätigen</h1></td>
  </tr>
  <tr>
    <td>Du hast nicht die Erlaubnis diese Seite aufzurufen!</td>
  </tr>
</table>';
				
			}
			
			
		}
		
?>

Bis zu dem Punkt //eintragen Mannschaft Punkte funktioniert das script!


Wo liegt der Fehler?
 
Zuletzt bearbeitet:
Grüße,

also ich würde mal drauf tippen, dass du den Spielbericht wie oben beschrieben eben nur in Tabelle 2 schreibst, jedoch nicht auch in Tabelle 1, weshalb dein UPDATE-Befehl hier nutzlos ist, denn es gibt ja noch keinen solchen Datensatz, deshalb wäre an dieser Stelle der INSERT-Befehl hilfreicher.
 
doch, der datensatz sieht beispielsweise so aus:
Heimteam: dortmund
Gastteam: schalke
heimtore: 2
gasttore: 1
spieltag: 1
aktiv: 0
liga: 1. Bundesliga
sicher: 1
bericht: 0

das updatet er ja auch. er trägt das ergebnis etc. in den Spielplan ein. Aber der wichtige teil, dieser wo er die torschützen updaten soll, der funktioniert nicht! und der datensatz für jeden spieler ist bereits vorhande, deshalb die update funktion.

Bei jedem spieler sind tore gelbekarte roekarte etc. standartmäßig auf 0!
 
Okay,

also ist ja doch ein wenig schwierig sich durch die ganzen abfragen zu wuseln ;).
Aber ich habe noch einen kleinen Fehler entdeckt:

PHP:
if($verg["heimtore"] = $verg["gasttore"]) {

Die Zeile hier, dürfte denke ich mal nicht das sein, was du wolltest, da hier mit nur einem "=" kein Vergleich, sondern eine Zuweisung durchgeführt wird.
Vllt. ist es auch gerade diese Verzweigung, die du brauchst und weshalb es nicht geht.

Änder das mal so ab:
PHP:
if($verg["heimtore"] == $verg["gasttore"]) {
 
ok habe ich gemacht, aber ich weiß, dass heimtore definitiv größer als gasttore ist, deshalb darf diese bedingung eig nicht eintreffen, sondern der andere teil. Irgendwas stimmt mit dem mysql nicht?!
 
Ja in der Zeile hängt auch nen kleiner Haken drin:

PHP:
if($verg->heimtore > $verg->gasttore) {

Warum hast du die Abfrage hier anders gestaltet, als bei den anderen Verzweigungen?
Vielleicht ein Überbleibsel aus einer früheren Version?!
So kann zumindest kein Array abgefragt werden, sonder nur ein Datensatz-object, sofern man es so nennen darf.

PHP:
if($verg["heimtore"] > $verg["gasttore"]) {

Wenns daran net liegt, dann bin ich mit meinem Latein auch am Ende.
 
PHP:
if($verg->heimtore > $verg->gasttore) {
	$aendern5 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
siege = siege + 1,
tore = tore + '.$verg->heimtore.', 
gegentore = + '.$verg->gasttore.', 
punkte = punkte + 3, 
WHERE name = "'.$verg->heim.'"';
$update5 = mysql_query($aendern5);

$aendern6 = 'UPDATE fifa_mannschaften Set
spiele = spiele + 1, 
niederlagen = niederlagen + 1, 
tore = tore + '.$verg->gasttore.', 
gegentore = + '.$verg->heimtore.', 
punkte = punkte + 0, 
WHERE name = "'.$verg->gast.'"';
$update6 = mysql_query($aendern6);


Sieht jetzt so aus, klappt dennoch nicht!
 
Zurück