Seite 1 von 1

Zufallssortierung, wie realisieren?

Verfasst: 19.04.2009, 18:24
von JohnBi
Ich habe X Datensätze in der Datenbank und gebe die eigentlich immer so aus...

Code: Alles auswählen

$sql = "SELECT * from TABELLE WHERE kunden='1'";
$result_sql = @mysql_query($sql);
$result_sql_rows = @mysql_num_rows($result_sql);

for &#40;$count_sql = 0; $count_sql < $result_sql_rows; $count_sql++&#41;
  &#123;
  $result_sql_1 = mysql_fetch_array&#40;$result_sql&#41;;
  $result_sql_id = $result_sql_1&#91;'id'&#93;;
  $output_sql .="KundenID&#58; $result_sql_id<br>";
  &#125;

echo $output_sql;
Nun such ich eine Möglichkeit die Ausgabe ber Zufall umzusortieren, geht das direkt schon mit MySQL oder wie stell ich das am besten an? Jemand eine Idee?

Verfasst:
von

Verfasst: 19.04.2009, 18:29
von MrTunes

Code: Alles auswählen

bool shuffle  &#40; array &$array  &#41;

Verfasst: 19.04.2009, 18:29
von Pompom
ORDER BY RAND() ist dein Freund.

Verfasst: 19.04.2009, 18:34
von JohnBi
boah, danke vielmals für die geilen Tipps...

was nun wenn ich nen Datenfeld habe nennen wir es mal "Ranking" mit Werten zwischen 0-10 ... wie kann ich diesen mit in die Sortierung einfließen lassen.

das zum Beispiel Kunden mit nem Ranking von 10 weiter vorne angezeigt werden und aber trotzdem untereinander rotieren ...

am besten ohne Array, sondern direkt über MySQL

Verfasst: 19.04.2009, 18:38
von Pompom
ORDER BY Deinfeldwert+RAND() oder sowas in der Art.

Verfasst: 19.04.2009, 19:06
von JohnBi
ok, mal schauen, ich werd das versuchen irgendwie miteinander zu verbinden...
ORDER BY RANKING AND RAND() ASC
so? Ich kann das noch nicht testen, aber ich werde mich nochmal melden wenn ich das mal eingebunden habe ...

Danke für die Hilfestellung.

Verfasst: 19.04.2009, 19:10
von net(t)worker
wenn du bei order nach mehreren kriterien sortieren wqillst, musste die per , verbinden, also so

Code: Alles auswählen

ORDER BY RANKING ASC, RAND&#40;&#41; 
aber mit RAND() dabei habe ich es noch nie versucht...

Verfasst: 19.04.2009, 19:13
von Airport1
> ORDER BY RAND() ist dein Freund.

meiner ists nicht. zumindest frueher wars einer der schlechtesten zufallsgeneratoren die ich je erlebt habe, da wurde auch schon mal "zufaellig" 5mal der selbe datensatz hintereinander gezogen, oder aber immer die selbe reihenfolge .)

aber zufall ist auch gar nicht so einfach ;)

Verfasst: 19.04.2009, 19:15
von JohnBi
oh man, das ist das Horror-Szenario, 5mal derselbe Datensatz, das geht mal garnicht .... deswegen muss ich das Ranking mit reinbringen...

Danke net(t)worker, ich werd das mal bei Gelegenheit testen....

Verfasst: 19.04.2009, 19:35
von Southmedia
Der selbe Datensatz kann nur 'gezogen' werden wenn du 5 mal hintereinander ORDER BY RAND() LIMIT 1 machst um auf 5 Einträge zu kommen - und das wäre sowieso ziemlich dämlich.

Ansonsten ist BY RAND() eigentlich ganz in Ordnung.