Shadowcrow: Zufallsgenerator / Datenbankabfrage

hi @ll,

dachte mir ich könnte mich mal wieder meiner PHP Weiterbildung widmen, renne aber von einem Problem ins nächste. Ziel der Übung ist es ein "Signaturbild" zu erstellen welches mehrmals am Tag aktualisiert wird (die Signaturen kommen aus einer DB).

Es sollen zufällig Einträge ausgewählt werden, dies wollte ich so lösen:

  
<?php  
// soll die Einträge durchzählen und eine Zufallszahl erzeugen.  
$sql = "SELECT ID FROM SIGS ";  
$result = mysql_query($sql) OR die(mysql_error());  
$entrys = mysql_num_rows($result);  
srand(microtime()*1000000);  
  $zufall = rand(0,$entrys);  
//*****************************************************************************************************************  
// soll den Datensatz dessen ID der Zufallszahl entspricht ausgeben  
$sql = "SELECT Content FROM SIGS WHERE ID = $zufall";  
$content = mysql_query($sql) OR die(mysql_error());  
while($row = mysql_fetch_object($content))  
    {  
    $content_final =  $row->Content;  
    }  
$sql = "SELECT Author FROM SIGS WHERE ID = $zufall";  
$author = mysql_query($sql) OR die(mysql_error());  
while($row = mysql_fetch_object($author))  
    {  
    $author_final =  $row->Author;  
    }  
//*****************************************************************************************************************  
// bild erzeugen und später noch abspeichern und nur alle 5 stunden neu erzeugen lassen  
?>  

Jetzt hatte ich aber beim rumbrobieren auch einiges in der DB gelöscht d.h. das die ID nicht mehr fortlaufend ist, oder wie im Moment wo die Tabelle leer ist neue Datensätze erst mit ID 10 wieder anfangen:

  
SELECT Content FROM SIGS WHERE ID = $zufall  
SELECT Author FROM SIGS WHERE ID = $zufal  

funktioniert ja nicht.......wie bekomme ich dafür einen "Zufallsgenerator" hin der eine gültige ID auswählt oder wie ändere ich die IDs in der DB?

danke und gruss
shadow

--
Vor dem Parser und auf hoher See sind wir allein in Gottes Hand
  1. Hi,

    wie bekomme ich dafür einen "Zufallsgenerator" hin der eine gültige ID auswählt oder wie ändere ich die IDs in der DB?

    indem Du die Zufallsfunktion Deines DBMS verwendet. MySQL beherrscht das von sich aus.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. funktioniert ja nicht.......wie bekomme ich dafür einen "Zufallsgenerator" hin der eine gültige ID auswählt oder wie ändere ich die IDs in der DB?

    nutze für dinge die die datenbank erledigen kann die datenbankspezifische sprache - auch mysql ist in er lage zufällig zu sortieren

  3. Hallo Shadow,

    dachte mir ich könnte mich mal wieder meiner PHP Weiterbildung widmen, renne aber von einem Problem ins nächste. Ziel der Übung ist es ein "Signaturbild" zu erstellen welches mehrmals am Tag aktualisiert wird (die Signaturen kommen aus einer DB).

    Es sollen zufällig Einträge ausgewählt werden, dies wollte ich so lösen:

    die Suche liefert mir allein in den letzten drei Jahren weit über 50 Treffer zu
    ORDER BY RAND() in Kombination mit LIMIT. [1]

    Eine Suche nach "Zufallstexten aus Datenbank" wäre ebenfalls nicht erfolglos geblieben ...

    Freundliche Grüße

    Vinzenz

    [1] Es ist schon vorteilhaft, wenn man weiß, wonach man suchen soll :-)

    1. hi $name,

      die Suche liefert mir allein in den letzten drei Jahren weit über 50 Treffer zu

      ORDER BY RAND() in Kombination mit LIMIT. [1]

      danke (auch an die anderen) bin garnicht auf die Idee gekommen das es dafür eine Funktion gibt.

      Eine Suche nach "Zufallstexten aus Datenbank" wäre ebenfalls nicht erfolglos geblieben ...
      [....]
      [1] Es ist schon vorteilhaft, wenn man weiß, wonach man suchen soll :-)

      ja, unbedingt, ich hatte mich gedanklich so auf den Index eingeschossen das ich die Bäume vor lauter Wald nicht mehr sah :-)

      gruss
      shadow

      --
      Vor dem Parser und auf hoher See sind wir allein in Gottes Hand