PHP Zufalls werte wiedergeben

  • Ersteller Ersteller tender89
  • Erstellt am Erstellt am
T

tender89

Gast
Hallooo Liebes CB forum =).

also ne frage hier werden die id´s absteigend sortiert das klappt wunderbar.

HTML:
// Bestimmen der Einträge-Anzahl
    $gesamt		=	howmany();
    $seitengesamt	=	ceil( $gesamt / 10 );
  
    $offset	=	( $seite - 1 ) * 10;
    
    
    $query	=	"SELECT * FROM videos ORDER BY id DESC LIMIT " . $offset . ", 10";
    
    $result	=	mysql_query( $query );
    
    if ( ! $result )
    {
	    die("Konnte die Datensätze nicht auslesen");
    }

    $anzahl	=	mysql_num_rows( $result );

doch ich will jetzt das zufällige datensätze ausgelesen werden also zufalls id´s
habs mal so probiert:

HTML:
// Bestimmen der Einträge-Anzahl
    $gesamt		=	howmany();
    $seitengesamt	=	ceil( $gesamt / 10 );
  
    $offset	=	( $seite - 1 ) * 10;
    
    
    $query	=	"SELECT * FROM videos ORDER BY id RAND() LIMIT " . $offset . ", 10";
    
    $result	=	mysql_query( $query );
    
    if ( ! $result )
    {
	    die("Konnte die Datensätze nicht auslesen");
    }

    $anzahl	=	mysql_num_rows( $result );

hab einfach RAND() statt DESC ABER es geht nicht :lol:

weis einder die lösung und wäre so nett mir diese mitzuteilen?
 
Also wenn ich das richtig Überblicke willst du doch mit RAND eine Zufallszahl erzeugen und den Datensatz welcher die ID mit der Zufallszahl hat anzeigen zu lassen.

Ist also ORDER by die total falsche Richtung. Damit sortierst du die Datensätze nach einer bestimmten Splalte Aufsteigend oder Absteigend (DESC / ASC)

Du musst die Zufallszahl erzeugen und mit einer WHERE Klausel den Artikel raussuchen der diese ID hat.
 
ORDER BY RAND() funktioniert quasi indem jedem Datensatz eines Zufallszahl (RAND()) zugewiesen wird, und auf Basis dieser Zufallszahl dann sortiert wird.
Funktioniert also wunderbar wie Troublegum es korrigiert hat.
 
Oh cool wieder was dazu gelernt, diese Funktionalität kannte ich noch garnicht. Aber wegen dem Problem das bei meinem Lösungsansatz IDs im Random erzeugt werden könnten die nicht vorhanden sind, einfach vorher die Anzahl der Datensätze bestimme und damit das Random begrenzen ... hat jemand Erfahrungswerte wie Schnell der MySQL Server dieses Random bestimmt oder ob er sogar schneller wäre mit 2 einfachen Anfragen? Und das Random von PHP bestimmen zu lassen ... sollte man mal ne empirische Erhebung machen ... aber ich schweife ab :D
 
@Umbel: Auch das wird nicht funktionieren. Wenn in der Tabelle 10 Datensätze sind, heißt das nicht, dass die IDs von 1 bis 10 gehen. Das heisst nur, dass es 10 eindeutige, voneinander verschiedene IDs gibt. Wie die verteilt sind, kann man nicht so pauschal sagen. Der naive Ansatz führt hier in eine Sackgasse.
 
Zurück
Oben