Andreas: zufällige Auswahl 1 Datensatzes

Hallo,
habe eine Tabelle mit ca. 800 Datensätzen.
Bei 2 hab ich im Feld Banner ein Link eingetragen und das Feld isbanner 1 gesetzt.

Im Script dann folgender Code:

$request = mysql_query("Select banner From yb_members Where isbanner = 1 ORDER BY RAND() LIMIT 1") or database_error(__FILE__, __LINE__);
While ($curmem = mysql_fetch_array($request)){
$banner = $curmem['banner'];
echo '<br><small>Mitgliederbanner:</small><br>
<iframe src="'.$banner.'" width="468" height="60" frameborder="0" marginheight="0" marginwidth="0" scrolling="No"></iframe>
<br><br>';
}

Aber es wird immer nur 1 Banner angezeigt?
Was mache ich falsch?

Andreas

  1. PS: nehme ich beim obersten Eintrag die 1 heraus, wird dann der andere Banner angezeigt.

    Andreas

  2. nimm mal das LIMIT 1 aus dem SQL raus

    1. nimm mal das LIMIT 1 aus dem SQL raus

      Na super, dann werden ja beide angezeigt.
      Es soll aber 1 aus X ausgewählt werden wo isBanner = 1 ist.

      Andreas

      1. Hallo,
        also wenn ich das "Where isbanner = 1" herausnehme wird ein Mitglied per Zufall richtig gewählt. Also was ist falsch?

        Andreas

        1. yo,

          also wenn ich das "Where isbanner = 1" herausnehme wird ein Mitglied per Zufall richtig gewählt. Also was ist falsch?

          kann es sein, dass du nur ein datensatz hast, welcher in der spalte isbanner den wert 1 besitzt ?

          Ilja

          1. nein, dem ist leider nicht so. Hab mittlerweile mehrere auf 1 gesetzt, es wird immer nur der oberste Eintrag geliefert.

            Andreas

  3. Hallo Andreas,

    benutzt du eine MySQL-Version < 3.23.2 ?
    Dann musst du einen Workaround benutzen.
    Probiere mal bitte:

    SELECT banner, banner*0+RAND() AS rand_num FROM yb_members WHERE isbanner = 1 ORDER BY rand_num LIMIT 1

    Schönen Gruß aus München

    die knappschaft

    --

    sh:(  fo:|  ch:?  rl:°  br:$,<,>  n4:&  ie:|  mo:|  va:)  de:]  zu:)  fl:|  ss:|  ls:[,#
    1. Hallo

      benutzt du eine MySQL-Version < 3.23.2 ?

      Nein, Version ist 3.23.52

      SELECT banner, banner*0+RAND() AS rand_num FROM yb_members WHERE isbanner = 1 ORDER BY rand_num LIMIT 1

      klappt leider auch nicht.

      Was kann ich jetzt noch machen?

      Andreas

  4. Hallo,
    also, ich hab das nun etwas anderst gelöst. Hier mein Code:

    $request = mysql_query("Select banner From yb_members Where isbanner = 1");
    $anzahl = mysql_numrows($request);
    $i = Rand(0,$anzahl-1);
    $banner = mysql_result($request,$i,"banner");
    echo '<br><small>Mitgliederbanner:</small><br>
    <iframe src="'.$banner.'" width="468" height="60" frameborder="0" marginheight="0" marginwidth="0" scrolling="No"></iframe>
    <br><br>';

    Gruß Andreas