Zufällige Auswahl eines Datensatzes funktioniert nicht richtig

lordofscotland

Erfahrenes Mitglied
Hallo Community,

auf meiner Homepage http://www.cdk-dresden.de lasse ich mittels PHP und MySQL Banner einblenden.

Der Quellecode dazu sieht so aus:
PHP:
<?
 include("php/dbconnect_inc.php");
 $sql = "SELECT * FROM banner ORDER by RAND() limit 1";
 $res = mysql_query($sql);
 $anz = mysql_num_rows($res);
 while($z = mysql_fetch_row($res)) {
 $filename = "bilder/banner/$z[1].gif";
 if (file_exists($filename)) {
 print" <a href='http://$z[2]' target='_blank'><img src='$filename' width='$z[3]' height='$z[4]' border='0'></a>";
 }
 else print "$z[5]";
 }
 ?>

Nun das Problem, wenn ich die gesamte Seite local auf meinem eigenem Webserver teste klappt es das bei jedem Klick ein neues Banner angezeigt wird.
Online passiert das ganze nicht so reibungslos.

Wo kann das Problem liegen?

Danke im voraus

Lordofscotland
 
Bei mir kommt meistens der gleiche Banner, nur ab und zu ein anderer.
Anscheinend ist der eine sehr oft in der Datenbank eingetragen.
 
Habe gerade die DB gecheckt, das Banner welches immer angezeigt wird (introtex.net) ist nur einmal vorhanden, so wie alle anderen auch.

Hab die Abfrage für die Bilder bei Webdesign verwendet und dort klappt das ganze.

Gib es eine Möglichkeit das ganze noch anders zu erstellen, so das die Banner im Wechsel angezeigt werden?
 
Wie viele Datensätze gibt es denn? Wenn es beispielsweise nur zwei oder drei sind, ist es möglich, dass ein und derselbe Datensatz mehrere Male hintereinander zuföllig ausgewählt wird.
 
Es sind bis jetzt 22 Datensätze, so das rein theoretisch genügend Banner vorerst vorhanden wären um angezeigt zu werden.

Was ich nicht verstehe, im Bereich Webdesign habe ich unten Bilder von Webseiten drin die ebenfalls per Zufall aus der DB geholt werden, und dort klappt der Wechsel ohne Probleme.

Und es ist bis auf die Tabelle das selbe Script.
 
Tabellenstruktur:
id | int | 11 | Autoincrement | Primary | Not Null |
banner | varchar | 255
link | varchar | 255
breite | varchar | 25
hoehe | varchar | 25
link_a | text

Die Tabelle mit allen Daten hänge ich hier mal mit an, kann ja sein das ich dort irgendwo einen Gedankenfehler habe.
 

Anhänge

  • 24819attachment.zip
    1,7 KB · Aufrufe: 18
Probier mal folgende Abfrage:
Code:
SELECT
        `banner`,
        `link`,
        `breite`,
        `hoehe`,
        `link_a`
  LIMIT
        FLOOR(RAND() * (COUNT(*) + 1)), 1
Vielleicht klappt’s ja.
 

Neue Beiträge

Zurück