Problem bei Bildergallerie

  • Themenstarter Themenstarter chaosente
  • Beginndatum Beginndatum
C

chaosente

Ich hab folgenden Code benutzt.
Code:
<style type="text/css">
<!--
body{
color:#666666;
font-family:Verdana, Arial, sans-serif;
font-size:10px;
}
a:link{
text-decoration:none;
color:#666666;
font-family:Verdana, Arial, sans-serif;
font-size:10px;
}
a:visited{
text-decoration:none;
color:#666666;
font-family:Verdana, Arial, sans-serif;
font-size:10px;
}
img{
border:1px solid #000;
}
-->
</style>
<?php
echo "</head>\n";
echo "<body>\n";
// Wo liegt die .csv Datei?
$tappath = "./gallerie/";
// Name der .csv Datei
$tapdat = "tabpi.csv";
// Wo liegen die Bilder? Abschliessenden / bei Apache-Server nicht vergessen!
$bildpfad = "./gallerie/images/";
$handle = opendir($bildpfad);
$lv = 1;
while($file = readdir($handle))
{
// Serververweise nicht auslesen
if($file != "." && $file != "..")
{
// Nur Bilder auslesen
if(preg_match("/\.(jpg|gif|png)$/i", $file))
{
// Ausgelesene Bilder in ein Array laden
$bild[$lv] = $file;
$lv++;
}
}
}
closedir($handle);

// Wurde schon eine ID übergeben?
if(!isset($_GET['b'])) $_GET['b'] = 1;

// Wieviel Bilder sind es eigendlich?
$anzbilder = count($bild);
// Breite und Höhe des Bildes
$size = getimagesize($bildpfad.$bild[$_GET['b']]);


// Zurück und Weiter Link ausgeben
echo "<p style=\"text-align:center; margin:0px; padding:0px;\">";
if(1 != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']-1)."\" title=\"zur&uuml;ck\">« zur&uuml;ck</a>&nbsp;&nbsp;";
if($anzbilder != $_GET['b']) echo "<a href=\"".$_SERVER['PHP_SELF']."?b=".($_GET['b']+1)."\" title=\"weiter\">weiter »</a>";
echo "</p>\n";

// Bildnummer ausgeben
echo "<p style=\"text-align:center; margin:0px; padding:0px;\">Bild ".$_GET['b']." / ".$anzbilder." &nbsp;</p><br>\n";
// Bild ausgeben
echo "<p style=\"text-align:center; margin:0px; padding:0px;\"><a href=\" ".$bildpfad.$bild[$_GET['b']]."\"><img src=\" ".$bildpfad.$bild[$_GET['b']]."\" width=\"".($size[0] / 2.85) ."\" alt=\"Bild ".$_GET['b']." / ".$anzbilder."\" /></a></p>\n";
echo "<br><br><center>";

$Dateizeiger = fopen($tabpath.$tapdat, "r");
while( ($Daten=fgetcsv ($Dateizeiger,1000, ";")) !==FALSE)
{
    if (($bild[$_GET['b']]) == $Daten[0])
{
echo$Daten[1];
}
else
{
echo "";
}
}
fclose($Dateizeiger);

echo "</center>";

echo "</body>\n";
echo "</html>";
?>
Allerdings wird das Bild, was eigentlich als letztes angezeigt werden soll als erstes angezeigt! Ich hab keine ahnung woran genau das liegt! Kann mir jemand vllt helfen?
 
Zuletzt bearbeitet von einem Moderator:
Mein fehler! Was eigentlich passiert ist folgendes! Ich werde das mal an Hand einer Zahlenfolge darstellen!
So sollte es sein:

1 2 3 4 5 6

Bei mir ist es aber so:

6 1 2 3 4 5

Ist jetzt vllt. verständlciher was passiert? Aber vllt liegt es an der Sortierung des Arrays... komme trotzdem nicht weiter!
 
Gute Idee :-)


Wie stell ich das an? die bilder sind nach aufsteigender zahlenfolge sortiert! gibts da ne funktion?
 
Mhh ich habs jetzt mit
Code:
 asort($bild)
probiert! ändert sich aber nichts!
 
Wie gibst du denn anschließend das Array aus? Die asort()-Funktion behält nämlich bei der Sortierung die Indexverbindungen bei, sodass etwa eine Ausgabe per for-Schleife mit fortlaufendem Index sinnlos ist.
 
Also ich hab mir so einfach mal ausgeben lassen wie die Sortierung ist!

PHP:
foreach ($bild as $key => $val) {
echo "$key = $val\n";
}

Folgendes ergebnis kommt zu Tage!

PHP:
1 = 11.jpg 2 = 1.jpg 3 = 2.jpg 4 = 3.jpg 5 = 4.jpg 6 = 5.jpg 7 = 6.jpg 8 = 7.jpg 9 = 8.jpg 10 = 9.jpg 11 = 10.jpg

man sieht, dass nur das bild was an letzter stelle stehen sollte an erster stelle steht !
wie sortier ich das?
 
Zurück