rand() Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rand() Problem

    Nabend!

    Ich grübel da nun schon zwei nächte drüber und kriegs einfach nicht hin.

    Habe eine Mysql Tabelle mit nen paar (nur die wichtigen) Spalten bid und status.

    Ich selektiere alle Einträge, wo status='1' ist.

    Nun möchte ich gern aus diesen eine Zufallszeile (eintrag) ausgeben lassen. Das hatte ich folgendermaßen vor:

    PHP-Code:
    // Banner ermitteln
    $maxbanzahlermitteln "SELECT bid FROM banner WHERE bstatus='1'";
    $result1 mysql_query($maxbanzahlermitteln) OR die(mysql_error());
    $banzahl mysql_num_rows(mysql_query($maxbanzahlermitteln)); 
    Hier zähle ich, wieviele Banner in der DB mit bstatus='1' vorhanden sind. Soweit klar!

    Nun zum Problem:

    PHP-Code:
    //Zufallszahl (bid) 
    $bid rand(1$banzahl); 
    Hier nimmt er aus den bids eine zufallszahl zwischen 1 und der banneranzahl.
    Wenn nun aber bid 2 bstatus 0 hat, so sollte er diese ja gar nicht einbeziehen in die zufallsberechnung. Das tut er aber und gibt diese id dann mit aus!

    Wie löse ich mein Problem am besten? Habe schon versucht mit MIN/MAX zuarbeiten, aber da gibt er mir als Wert immer nur Ressource id #4 aus, obwohl nur 3 Einträge vorhanden sind. Und mit Ressource id #4 kann ich ja nicht arbeiten!

    Wäre dankbar, wenn mir jemand einen Schubs geben könnte!

  • #2
    Du möchtest einfach nen zufälligen Banner haben? ^^

    PHP-Code:
    $sql "SELECT bid FROM banner WHERE bstatus = '1' ORDER BY RAND(UNIX_TIMESTAMP())"
    - ist aber nicht getestet, evtl das UNIX_TIMESTAMP() weglassen.

    lg

    Kommentar

    Lädt...
    X