Bilder aus Ordnern nach Namen anzeigen

mekki1980

Mitglied
Hallo,

ich lese Bilder aus definierten Ordnern aus und lasse sie in einer Galerie anzeigen.

Dies funktioniert auch soweit ganz gut. Nur die Bilder werden durcheinander angezeigt. Nun möchte ich aber die Bilder aus dem jeweiligen Ordner den Namen nach anzeigen lassen.

Kann mir da eventuell jemand helfen?

Code:
<?PHP
$x=1;
$count=0;
$verz=opendir ("bilder/$abfrage[2]_mini");
while ($file = readdir ($verz))
 {
 if ($file != "." && $file != "..") {
   $images[$x] = $file;
   $filea=$file;
   $filea=ereg_replace("_mini.jpg",".jpg",$filea);
	  for ($x=1;$x<=count($images);$x++)
	  {
		if ($spalten=="4"){
		echo "</tr><tr><td height=\"10\"></td></tr><tr>";
		$spalten="0";
	  }
	  {
		$zeige="bilder/$abfrage[2]_mini/$images[$x]";
		$url  ="?page=create&bild=bilder/$abfrage[2]/$filea";
		echo "<td width=\"25%\" align=\"center\" bgColor=\"#4F78B1\" height=\"152\">
		<a href=\"$url\"><img src=\"$zeige\" border=\"0\"></a></td>";
	  }
 $spalten++;
 $count++;
 $x++;
 }
}
}
{
echo "$count Motive stehen zur Auswahl.";
}
closedir($verz);
?>
 
Also die "$abfrage[2]" ist eine Variable aus ner Datenbank. Die hat aber nichts mit den Bildern zutun.

Definition von Abfrage 2 durch:

Code:
<?php
$result=mysql_query("SELECT * FROM card_menue where sichtbar='Ja' && ID=".$rubrik);
$abfrage=mysql_fetch_row($result); { echo "<b>".$abfrage[1]."</b>"; }
?>
 
Zuletzt bearbeitet:
mein beitrag bezog sich eigentlich darauf ob du "ORDER BY" angegeben hast..... sonst post mal bitte die zeile wo du die ausliest

EDIT: irgendwo liest du die bilder auch aus, oder?
 
Jup, da bin ich fündig geworden und habs hinbekommen, dass es funktioniert ;-)

Aber da habe ich das nächste Problem.
Die Bilder liest es zwar aus dem Ordner aus, aber die Bilder werden untereinander angezeigt.

Da ich eine relativ große Tabellenbreite für die Ausgabe der Bilder habe, passen 4 Bilder nebeneinander.

Nun, wie kann ich dies dem Script "sagen", dass er 4 Bilder nebeneinander zeigen soll und dann darunter die nächsten 4 Bilder etc... ?

Das Script sieht derzeit so aus:

Code:
<tr><td>
<table border="0" cellspacing="0" cellpadding="0" width="530">
<tr>
<?php
function GetFileList($path, &$a)
  {
   $d=array(); $f=array();
   $nd=0;  $nf=0;
   $hndl=opendir($path);
   while($file=readdir($hndl))
   {
	 if ($file=='.' || $file=='..') continue;
	 if (is_dir($path.'\\'.$file))
	   $d[$nd++]=$file;
	 else
	   $f[$nf++]=$file;
   }
   closedir($hndl);
   sort($d);
   sort($f);
   $n=1;
   for ($i=0;$i<count($d);$i++)
   {
	 GetFileList($path.'\\'.$d[$i].'\\', $a[$n]);
	 $a[$n++][0]=$d[$i];
   }
   for ($i=0;$i<count($f);$i++)
   {
	 $a[$n++]=$f[$i];
   }
  }
  function ShowFileList(&$a, $N, $zeige, $zeigea)
  {
   for ($i=1;$i<=count($a); $i++)
   if (is_array($a[$i]))
	 {
	   echo "<H".$N.">".$a[$i][0]."</H".$N.">\n";
	   ShowFileList($a[$i], $N+1);
	 }
	 else
	   echo "<a href=\"?page=create&bild=$zeigea/pic$i.jpg\"><img src=\"$zeige/$a[$i]\" alt=\"\" border=\"0\"></a><br>";
  }

  GetFileList("bilder/$abfrage[2]_mini",$array);
  $zeige = "bilder/$abfrage[2]_mini";
  $zeigea = "bilder/$abfrage[2]";
  ShowFileList($array, 1, $zeige, $zeigea);
?>
</tr>
</table>
</td></tr>
 
Bei mir kommen die Bilder zwar aus 'ner Tabelle, und es sind 5 nebeneinander, aber ich denke mit dem Script kannst Du arbeiten.
PHP:
<table>
<tr>
<?
$images=mysql_query("select * from images where gallery='$galleryid' order by filename",$db);
$counter=0;
while ($image=mysql_fetch_row($images))
	{
		if ($counter==5)
			{
				?>
				</tr>
				<tr>
				<?
				$counter=1;
			}
		else
			{
				$counter++;
			}
		?>
		<td><a href="<? printf('index.php?subsite=showimage.php&image=%s',$image[0]); ?>"><img src="<? printf('thumbs/%s',$image[1]); ?>" alt="<? printf($image[1]); ?>"></a></td>
		<?
	}
?>
</tr>
</table>
 
Jup, das habe ich auch hinbekommen mit den Spalten. THX

Aber da tut sich wieder nen neues Problem auf, wie man auf dem Bild sieht :confused:

bild1.jpg


Wieso ist na den leeres Bild bzw. kein Bild zu sehen?

Der Quelltext sieht derzeit so aus:

Code:
<tr><td height="10"></td></tr>
<tr><td>
<table border="0" cellspacing="0" cellpadding="0" width="530">
<tr>
<?php
$spalten = 0;
function GetFileList($path, &$a)
  {
   $d=array(); $f=array();
   $nd=0;  $nf=0;
   $hndl=opendir($path);
   while($file=readdir($hndl))
   {
	 if ($file=='.' || $file=='..') continue;
	 if (is_dir($path.'\\'.$file))
	   $d[$nd++]=$file;
	 else
	   $f[$nf++]=$file;
   }
   closedir($hndl);
   sort($d);
   sort($f);
   $n=1;
   for ($i=0;$i<count($d);$i++)
   {
	 GetFileList($path.'\\'.$d[$i].'\\', $a[$n]);
	 $a[$n++][0]=$d[$i];
   }
   for ($i=0;$i<count($f);$i++)
   {
	 $a[$n++]=$f[$i];
   }
  }
  function ShowFileList(&$a, $N, $zeige, $zeigea)
  {
   for ($i=1;$i<=count($a); $i++)
   if ($spalten == 4)
	 {
	 echo "</tr><tr><td height=\"10\"></td></tr><tr>";
	 $spalten=0;
	 ShowFileList($a[$i], $N+1, $zeige, $zeigea);
	 }
   else
	 {
	 echo "<td width=\"25%\" align=\"center\" bgColor=\"#4F78B1\" height=\"152\"><a href=\"?page=create&bild=$zeigea/pic$i.jpg\"><img src=\"$zeige/$a[$i]\" alt=\"\" border=\"0\"></a></td>";
	 $spalten++;
	 }
  }
  GetFileList("bilder/$abfrage[2]_mini",$array);
  $zeige = "bilder/$abfrage[2]_mini";
  $zeigea = "bilder/$abfrage[2]";
  ShowFileList($array, 1, $zeige, $zeigea);
?>
</tr>
</table>
</td></tr>
 
Zurück