Eintrag in DB nicht ganz korrekt?

2Pac

Erfahrenes Mitglied
Hallo Leute!

Ich habe ein Turnierscript programmiert! Funktioniert auch super. Nur habe ich ebend das Turnier gestartet. Wir haben mit 64 Leuten gerechnet. Diese waren schnell gefunden und haben sich eingechecked. Doch beim eintragen der Nummer in eine DB hat er bei 2 Usern einfach keine Zahl eingetragen!

Hier mal der Code:

PHP:
$res20 = mysql_db_query("$DatabaseName", "select nick 
from fteilnehmer where checkin=1 and 
nochdrin=1 ORDER BY rand()");
for($i=1; $data=mysql_fetch_array($res20); $i++)
                    {
                     $nam = $data[0];
                     
                     $sqlab = "update fteilnehmer set runde1=$i where nick='$nam'";
                     mysql_db_query("$DatabaseName", $sqlab);
                    }

Kann mir jemand sagen was der Fehler sein kann dafür?
 
Hm... seltsames Konstrukt, das du da hast. Probier's mal so:
PHP:
$res20 = mysql_db_query($DatabaseName,
"SELECT nick FROM fteilnehmer WHERE checkin=1 AND
nochdrin=1 ORDER BY rand()");
while ($date = mysql_fetch_array($res20) { // <-- diese Zeile ändern
    $nam = $data[0];
    $sqlab = "UPDATE fteilnehmer SET runde1=$i WHERE nick='$nam'";
    mysql_db_query($DatabaseName,$sqlab);
}
 
hmmm und die for schleife vor die auswahl $res ?

Aber rein theoretisch is doch meins auch net falsch oder?
 
Du kannst das Auslesen aus einer MySQL Datenbank auch mit Hilfe einer for() Schleife machen, das ist garkein Problem.
 
Setze den Anfangswert von $i mal auf 0, die Datenbank fängt ja normaerweise auch mit dem Anfangswert 0 an...
 
ne das bringts ja nicht! Es solln ja die Werte 1-nummer der datensätze eingetragen werden in die Zeile Runde1 bei jedem User eine Zahl.

Denn es wird ja Quasi die Datanbank zufälliger Reihenfolge angeordnet und dann jedem User ein Wert zugeschrieben. D.h. es gibt 64 Verschiedene Werte z.b. bei 64 Usern. Und dann kann ich daraus ja die Paarungen ableiten.

Spieler mit dem Wert1 gegen Spieler mit Wert2 usw. bis 64...

Es klappte ja auch nur fehlten mittendrin 2 Spielern Werte! Und ich habe keine Ahnung warum?
 
Also erstmal definiere für das runde1 Feld den Defaultwert 0, danach probiere es nochmal mit diesem Script...

PHP:
$res20 = mysql_db_query($DatabaseName,"SELECT nick FROM fteilnehmer WHERE checkin='1' AND nochdrin='1' AND runde1='0' ORDER BY rand()");

for($i=1; $data=mysql_fetch_array($res20); $i++)
{
  $sqlab = "UPDATE fteilnehmer SET runde1=".$i." WHERE nick='".$data[nick]."'";
  mysql_db_query($DatabaseName,$sqlab);
}
 
das mit runde1 = 0 geht nicht da alle in der Datenbank runde1 = 0 haben! Aber es sind nicht alle von denen Teilnehmer am Turnier!

Das mit default 0 habe ich schon vorher so gehabt.
 
Es ist dann in diesem Fall doch nur ein zusätzlicher Filter...also probiere den Code von mir doch mal...
 
Zurück