Bildrotation mit PHP und MySQL

Kreuzkauz

Mitglied
Hallo Leser!


Ich möchte eine mehrspaltige Zufalls-Bildrotation programmieren.

Ich habe eine einspaltige MySQL-Tabelle angelegt. Dort stehen 100 Bildnummern drin.

Es sollen immer 33 Bilder zufällig angezeigt werden.

Code:
$sql = "SELECT bildnummer FROM lightbox ORDER BY RAND() LIMIT 33;";

Wie übergebe ich jetzt die Tabellenwerte in die 33 Variablen.

Das einzigste was annähernd klappt wäre:

Code:
$sql = "SELECT bildnummer FROM lightbox ORDER BY RAND() LIMIT 33;";
$result = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$bild[] = $row['bildnummer'];
}

Es werden aber nur 3 Bildnummern ausgelesen, die vierte usw. nicht mehr, obwohl die Tabelle voll ist.

Eine einspaltige Bildrotation bekomme ich ja hin. Aber wenn zwei Bilder nebeneiander stehen sollen, wird es schwer.

So sieht der PHP-Code für eine Zeile und drei Spalten aus:

Code:
<tr>
<td><img src="<?php echo $bild1; ?>"></td>
<td><img src="<?php echo $bild2; ?>"></td>
<td><img src="<?php echo $bild3; ?>"></td>
</tr>


Thomas
 
Kann ich mir ehrlich gesagt nicht vorstellen, da LIMIT 33 im Query gesetzt wurde.
Ist das wirklich dein komplettes Script innerhalb der while?
Poste vielleicht auch mal ein print_r von deinem $bild nach der while:
PHP:
echo "<pre>";
print_r($bild);
echo "</pre>";
 
Hallo!

Danke für die schnelle Antwort. Die Antwort hat meinen Fehler offenbart!

Hier die Ausgabe:

Code:
echo "<pre>"; 
print_r($bild); 
echo "</pre>";  

Array
(
    [0] => 031683F5F3743E5E6C11E7708077573F
    [1] => 031025844AC1546CF7FEBA3DB4B87ACE
    [2] => 1BC138579DFC40C3423ECD1BB24C6511
    [3] => 0369A2CB6E408FBAECD8BF76FDF6CBCD
)

So klappt es doch:
Code:
$sql = "SELECT bildnummer FROM lightbox ORDER BY RAND() LIMIT 33;";
$result = mysql_query($sql) OR die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$bild[] = $row['bildnummer'];
}

Ich habe schon lange nicht mehr mit Array´s programmiert und habe vergessen, das mit [0] und nicht [1] angefangen wird.

Thomas
 
Zurück