2010-11-16 10 views
5

Ich habe erweiterte Suche auf meiner Webseite, jetzt, wie das funktioniert, ist wie folgt. Wenn eine Suche durchgeführt wird, werden zufällige Ergebnisse auf der Inhaltsseite angezeigt, jetzt enthält diese Seite auch Seitenumbruch, so dass mein Problem jedes Mal, wenn der Besucher auf die erste Seite geht, unterschiedliche Ergebnisse erscheinen. Ist es möglich, die Seitennummerierung zu verwenden, oder wird die Reihenfolge immer zufällig sein?Zufällige Werte in MySql Abfrage mit Paginierung

Ich bin die eine Abfrage wie

SELECT * FROM table ORDER BY RAND() LIMIT 0,20; 

Antwort

12

verwenden, sollten Sie einen Samen für die RAND MySQL verwenden konsistente Ergebnisse zu erhalten. In PHP haben Sie eine

$paginationRandSeed = $_GET['paginationRandSeed']? 
    ((int) $_GET['paginationRandSeed']): 
    rand() 
; 

und in MySQL verwenden Sie diesen Samen

"SELECT * FROM table ORDER BY RAND(".$paginationRandSeed.") LIMIT 0,20" 

Natürlich werden Sie die anfängliche Samen in den Seitenanforderungen propagieren müssen.

Viel Glück,
Alin

+0

Thanx für mich in die richtige Richtung, Ihre Lösung für mich funktionierte perfekt – Roland

+0

Ausgezeichnete Punkt mehr für diese Funktion RAND() in MySQL-Dokumentation zu studieren. Ich habe eine Liste von Immobilienangeboten auf meiner Kundenseite. Ich habe '$ seed = date (' jnY '); ' – kkatusic