Zufall ausgabe immer das Gleiche

dom123

Mitglied
Hi ich wollte mir ein Kleine Script schreiben der die Teams per zufall ausgibt , aber er zeigt immer das lezte der datenbank 3mal aus.

Fakten :
3 Zeilen drine ind der Datenbank.
4 Zeilen lass ich ausgeben.
3 mal kommt das gleiche jeweils das lezte Team in der Datenbank.
1 Mal eine Lehre Zeile.
Habe Mysql.

PHP:
<?
   $spiel = $_REQUEST['spiel'];
   $sql = safe_query("SELECT clanname, spiel FROM ".PREFIX."cup WHERE spiel='$spiel'");
   	while($sqlaction =  mysql_fetch_array($sql)){
   	$team = $sqlaction['clanname'];
   	$team1 = $sqlaction['clanname'];
   	$team3 = $sqlaction['clanname'];
   	$team4 = $sqlaction['clanname'];
   	$teams = array($team,$team1,$team2,$team3,$team4);
     }  
   srand((float)microtime() * 1000000);
   shuffle($teams);
   echo "$teams[0]<br>";
   echo "$teams[1]<br>";
   echo "$teams[2]<br>";
   echo "$teams[3]<br>";
   ?>

MFG Dom.
 
  • Wenn nur 3 Zeilen in der Datenbank sind werden keine 4 Zeilen herauskommen.
  • Du liest in Deiner Schleife immer nur ein Team aus, welches Du 4 mal in das Array schreibst. Damit bleibt nur das letzte Team übrig, da es die anderen überschreibt.
  • $team2 ist nicht definiert, wenn es ins Array übernommen wird. Daher kommt die leere Zeile
  • Mein Vorschlag:
PHP:
<?
    $spiel = $_REQUEST['spiel'];
    $sql = safe_query("SELECT clanname, spiel 
        FROM ".PREFIX."cup 
        WHERE spiel='$spiel'
        ORDER BY RAND()
        LIMIT 4"); //LIMIT dient dazu, das Ergebnis 
                   //auf max. 4 Teams zu begrenzen, wenn Du 
                   //alle zeigen willst, lass es einfach weg
    while($sqlaction =  mysql_fetch_array($sql)){
        echo $sqlaction['clanname']."<br>";
    }  
?>
Gruß hpvw
 
Eine Frage habe ich noch Ich will die Clanname dan so wie sie aufgelistet wurden auch wieder in die datenbank einfügen so das ist ja nicht schwer , aber ich will jeden Namen in eine eigene Spalte einfügen kann man das machen wenn ja wie.

MFG Dom.
 
Du benötigst nur eine Tabelle mit genügend vielen Spalten. Dann kannst Du alle Clannamen dort einfügen. Und wenn ein Clan hinzukommt änderst Du einfach die Datenbankstruktur und fügst eine Spalte hinzu...
Sowas macht man nicht! Man fügt nicht in einer Zeile mehrere Attribute der gleichen Bedeutung ein. Dazu gibt es Beziehungen.

Gruß hpvw
 
Zurück