[TYPO3-UG Freiburg] zufällige Seiten-Sortierung mit DB-Abfrage

Heiko Hänsge mailinglisten at wild-wild-web.de
Wed Feb 24 16:20:01 CET 2010


Hallo Steffen,


>> Hat da jemand einen Hinweis, oder muss ich das Ergebnis-Array mit PHP 
>> im Nachhinein 'durchmischen'?
> Das ist die beste Lösung, mit der Du kompatibel zu allen Datenbanken 
> bleibst.
>
> Z.B. würde bei Oracle ORDER BY RAND() nicht funktionieren, sondern 
> ORDER BY DBMS_RANDOM.VALUE
>
> Ich würde gerne Wissen, wie Du das mit PHP löst.
:-)

// erst mal alle relevanten Datensätze aus der DB holen
$result = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages', $where, 
'', '', '');

// alle Datensätze in ein Array gepackt
$allResults = array();
$i = 0;
while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($result)) {
     $allResults[$i] = $row;
     $i++;
}

// die Indizes der Datensätze mischeln
shuffle($allResults);

// die Anzehl der auszugebenden Datensätze auf $count begrenzen
$truncResults = array_slice($allResults, 0, $count, true);

// bei der Ausgabe beachten, dass USER_INT benutzt wird statt USER, 
sonst wird die Ausgabe gecacht.


Viele Grüße
Heiko Hänsge

http://wild-wild-web.de/


More information about the TYPO3-UG-Freiburg mailing list