MYSQL Updaten funktioniert nicht.

DonDemf

Erfahrenes Mitglied
Hallo Leute,
ich habe die Tabelle "fifa_leihmarkt_gebote" dort stehen Spieler drin, die von einem Verein an einen anderen ausgeliehen wurden.

Es wird zu jedem Spieler die Spielerid gespeichert, der ursprungsverein und der neue verein. Zusätzlich auch noch die Dauer.

Nun möchte ich eine Funktion nur für Admins (user dessen rang größer als 4 ist) erstellen, welche alle Spieler die eine dauer von ehr(ende hinrunde) oder err(enderückrunde) zurück zum urspungsverein transferiert.

Folgender Code:

PHP:
<?php
$modus = $_GET["modus"];

if($userdata["rang"] >= "4") {
	// Geliehende Spieler zurück
	// ehr = Ende Hinrunde
	// err = Ende rückrunde
	
	if(isset($modus)) {
		
		// Leihgeschöfte raussuchen
		$a1 = 'SELECT * FROM fifa_leihmarkt_gebote WHERE akzeptiert = "1" AND dauer = "'.$modus.'"';
$e1 = mysql_query($a1);
while($r1 = mysql_fetch_object($e1))
   {

$aendern = 'UPDATE fifa_spieler Set verein = "'.$r1->verein.'", geliehen = "0" WHERE id = "'.$r1->id.'"';
$update = mysql_query($aendern);
if($update==TRUE) {
	
	echo 'Der Spieler mit er ID '.$r1->spielerid.' wurde erfolgreich zum ursprünglichen Verein transferiert';
} else {
	echo 'Fehler';
	mysql_error();
	
}
   }

		
	} else {
		echo 'Bitte eine Art auswählen!';
	}
} else {
	
	echo 'Du hast nicht die Rechte, diese Seite zu besuchen!'; }
?>

$modus ist in meinem Fall die dauer als err oder ehr

Da script gibt mir folgendes aus:
Der Spieler mit er ID 2611 wurde erfolgreich zum ursprünglichen Verein transferiert

Das ist also richtig, denn es gibt momentan nur den spieler 2611 der als dauer ehr hat (ich habe als modus ehr verwendet).
Aber er updatet den Spieler nicht :(

kann wer helfen?
 
Ist die ID wirklich ein String? Ansonsten solltest du sei wie eine Nummer behandeln und nicht in ' setzen.

Der Update wird als SQL schon richtig sein, darum gibts true zurück. Findet aber nix zum Updaten. Um herauszufinden wieviele Datensätze betroffen waren solltest du mysql_affected_rows() benutzen.
PHP:
mysql_query($aendern);
if( mysql_affected_rows()>0) {
...

Aber jetzt eine kleine Frage. Du beziehst die Objekteigenschaft id um das SQL herzustellen. Im Text greifst du aber auf spielerid zu. Habe diese beiden denselben Inhalt?
Im SQL-String:
$r1->id
Im Text:
$r1->spielerid
 
Danke, ID und Spielerid sind unterschiedlich. Den Spieler mit dem $r1->id gibbet nicht, sondern $r1->spielerid musset sein ;)
 
Zurück