Random-Einträe aus vorhandener SQL-Abfrage

NBA

Grünschnabel
Hallo,

ich hole aus eine MySQL-DB 50 Einträge, d.h. der Befehl lautet Select * from tabelle where ..... limit 50

Nun möchte ich aus diesen 50 Einträgen genau 22 Einträge auf dem Bildschirm ausgeben lassen.

Wie bekomme ich das hin, mit dem rand()-Befehl wüsste ich hier nich auf Anhieb was ich machen sollte...

Vielen Dank
NBA
 
Wenn deine ID's in der Datenbank vortlaufend sind kannst du das so machen:
PHP:
for ($i=0;$i<22;$i++) {
   $randid = rand(0, 50);
   // Datensatz mit der ID $randid ausgeben...
}

Jedech ist hier noch die Chance, dass du dann 2x den gleichen ausgibst, vorhanden...
 
tach!
ich hab ein ähnliches problem, deshalb denk ich mir, dass ich dafür keinen neuen thread machen sollte. Bei mir ist es nur so, dass ich jetzt bestimme Einträge selektiert habe, die ID derer aber nicht fortlaufend ist, da nur die einträge genommen werden, die auf eine bestimmte Eigenschaft zutreffen. Wie kann ich nur einen der Einträge zufällig auswählen
Danke
 
PHP:
$sql = "SELECT * FROM tabelle WHERE bedingung = '$muhahaha' ORDER BY rand() LIMIT 5";

-,-
 
Wenn du wirklich die 50 Eintraege haben willst, und das zufaellige auswaehlen PHP erledigen soll (also nicht so wie Voodoo es gezeigt hat), dann nimm array_rand()
PHP:
$temp = array();
while ($row = mysql_fetch_assoc()) $temp[] = $row;

for ($c=0;$c<22;$c++) {
    $key = array_rand($temp);
    print_r($temp[$key]);
    unset($temp[$key]);
}
Das print_r't jetzt 22 zufaellige Eintraege aus dem Array und entfernt sie daraus. Die restlichen sind immer noch im Array drinnen.

Wenn du allerdings die restlichen Elemente des Arrays sowieso nicht mehr brauchst, dann mach das so wie Voodoo gesagt hast.
 
Zurück