zufallsbilder aus verschiedenen Ordner

lyco

Mitglied
Hallo
ich habe ein script zusammengebastelt wo sich zufallsbilder aus verschiedenen Ordner zeigen sollte. Leider funktioniert es nur aus einem Ordner. Die verschidenen Ordner-Pfade sind in einer mysql datenbank gespeichert. es wird immer nur die Bilder der id 1 angezeigt. Kann mir da jemand helfen.
PHP:
<?php

$verbindung = mysql_connect("localhost","","");
mysql_select_db("");

//Script für das Zufallsbild
$bilder = array();
//Ordner öffnen
$sql = "SELECT gallerie FROM test";

$result = mysql_query($sql, $verbindung);

$ordner=mysql_result($result,$i,"gallerie");

$dir = opendir ($ordner);
//Datei lesen ohne die Verzeichnisse darüber
while ($bild = readdir ($dir)){
if ($bild != "." && $bild != "..")
array_push($bilder,$bild);
}
closedir($dir);
$max = count($bilder)-1;
$zufall = rand(0,$max);
$bild = $bilder[$zufall];
?>
<img src="<?php echo $ordner ?>/<?php echo $bild ?>"alt="" height="357" width="534" border="0" />

habe von php leide nicht sehr viel ahnung.

Ps. ist es auch möglich dass das Bild nach einer eistellbaren Zeit ändert und nicht bei jedem Seitenaufruf?
 
Soweit ich weiß gibt es eine rand() Funktion für SQL-Statements weil sonst haste nur id=1 wie du schon gesagt hast. Von daher ist es eine (My)Sql-Frage und mit einem Refresh ist es möglich eine Art Diashow zu machen ja.

mit PHP wäre das denn: header("refresh:1;url=index.php");
mit HTML im <head>-Bereich: <meta http-equiv="refresh" content="10; URL=index.php">
 
Zuletzt bearbeitet:
Soll immer nur ein Bild angezeigt werden, oder ist das unterschiedlich? Pro Verzeichnis ein Bild, oder ist auch das egal?
 
SQL:
SELECT `gallerie` FROM `test` ORDER BY RAND( ) LIMIT 1

Mit dieser Abfrage solltest du immer ein anderes Verzeichnis bekommen. Dann kannst du dieses Verzeichnis auslesen und dir einfach eine Datei per Zufall auswählen lassen.
 
Danke es funktioniert.
Ist es auch möglich das die bilder erst nach einer einstallbaren zeit ändern und nicht bei jedem Seitenaufruf oder aktualisierung?
 
Danke für die erklerung. Kann aber leider nicht ganz folgen habe leider von php nicht sehr viel ahung. Ist es vieleicht möglich eine geauere "für mich einfache" anleitung zu bekommen? währe sehr lieb.
 
Könntest du dich bitte etwas mehr an Groß-/Kleinschreibung halten? Danke.

Er meint das so.
Code:
|        Bildpfad        |     Timestamp     |
+------------------------+-------------------+
|   Pfad/zum/bild.jpg    |    1102564212     |

etc

Nun ließt du das aus der DB aus
PHP:
<?php
function get_image($image_now)
{
     #Hier kommt der Code zum herraussuchen des Bildes hin
  
     return ($image_now == ($ordner."/".$bild)?get_image($image_now):$ordner."/".$bild);
}

$bild_anzeigedauer = 120; #Angabe in Sekunden

$sql = "SELECT * FROM `tabelle`";
$result = mysql_query($sql) or die(mysql_eror());
list($DBbild, $time) = mysql_fetch_assoc($result);
if($time + $bild_anzeigedauer <= time())
{
     #führe Zufallsbildfunktion aus.
     $bild = get_image($DBbild);

     if(!empty($time))
     {
          $sql  = "UPDATE `tabelle` SET `Bildpfad` = '".$bild."', `Timestamp` = '".time()."' WHERE `Timestamp` = '".$time."'"
     }
     else
     {
         $sql = "INSERT INTO `tabelle` VALUES ('".$bild."', '".time()."')";
     }
     mysql_query($sql) or die(mysql_error());
}
else
{
     $bild = $DBbild;
}
?>
<img src="<?=$bild ?>"alt="" height="357" width="534" border="0" />
 
Zuletzt bearbeitet:
Zurück