IT-Academy Logo
Sign Up Login Help
Home - Programmieren - PHP - Bildergalerie mit PHP



Bildergalerie mit PHP

Eine einfache Methode, um Bilddaten aus einer Datenbank zu lesen und die Bilder auf einer Website nebeneinander darzustellen.


Autor: Wolfgang Arnberger (Wolfgang)
Datum: 23-01-2002, 19:25:49
Referenzen: http://www.it-studio.net
Schwierigkeit: Fortgeschrittene
Ansichten: 13131x
Rating: 4 (3x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Im Rahmen eines Projektes mußte ich mehrere Bilder nebeneinander darstellen. Unter jedem Bild sollte ein Text eingeblendet werden.

Die Informationen, welche Bilder angezeigt werden sollen, kommen aus einer mySQL Tabelle. Die Struktur ist denkbar einfach:

ID bild text
1 1.jpg Text 1
2 2.jpg Text 2
3 3.jpg Text 3
4 4.jpg Text 4
5 5.jpg Text 5
6 6.jpg Text 6

Das Herzstück ist die Funktion query_into_array(). Diese Funktion holt die Daten aus der Tabelle und schreibt sie in ein zweidimensonales Array. Dabei enthält die erste Dimension den Datensatz während die zweite Dimension ein assoziatives Array mit den einzelnen Feldern enthält.

<?
function query_into_array($query){
settype($retval,"array");
$result= mysql_query($query);
$y=mysql_num_rows($result);
$k=mysql_num_fields($result);
  for($i=0;$i<$y;$i++){
    for($j=0;$j<$k;$j++){
    $retval[$i][mysql_field_name($result,$j)] =
    mysql_result($result,$i,mysql_field_name($result,$j));
    }
  }
return $retval;
}
?>

Nachdem die Daten nun in einem Array vorliegen, besteht der ganze Trick darin, die einzelnen Werte in die entsprechenden Zellen einer HTML-Tabelle zu schreiben:

<?
// Daten in ein Array schreiben
$erg=query_into_array("select * from galerie");

// Anzahl der Bilder ermitteln
$y=count($erg);
?>
<TABLE WIDTH="760" CELLSPACING="0">
<? for ($x=0;$x<$y;$x+=5) {?>
<TR>
<TD WIDTH="20%">
<? if($erg[$x][bild]) {?>
<IMG SRC="<? echo "pics/".$erg[$x][bild] ?>">
<? } ?>
</TD>
<TD WIDTH="20%">
<? if($erg[$x+1][bild]) {?>
<IMG SRC="<? echo "pics/".$erg[$x+1][bild] ?>">
<? } ?>
</TD>
<TD WIDTH="20%">
<? if($erg[$x+2][bild]) {?>
<IMG SRC="<? echo "pics/".$erg[$x+2][bild] ?>">
<? } ?>
</TD>
<TD WIDTH="20%">
<? if($erg[$x+3][bild]) {?>
<IMG SRC="<? echo "pics/".$erg[$x+3][bild] ?>">
<? } ?>
</TD>
<TD WIDTH="20%">
<? if($erg[$x+4][bild]) {?>
<IMG SRC="<? echo "pics/".$erg[$x+4][bild] ?>">
<? } ?>
</TD>
</TR>
<TR>
<TD WIDTH="20%"><? echo $erg[$x][text] ?></TD>
<TD WIDTH="20%"><? echo $erg[$x+1][text] ?></TD>
<TD WIDTH="20%"><? echo $erg[$x+2][text] ?></TD>
<TD WIDTH="20%"><? echo $erg[$x+3][text] ?></TD>
<TD WIDTH="20%"><? echo $erg[$x+4][text] ?></TD>
</TR>
<? } ?>
</TABLE>


In der Zeile <? for ($x=0;$x<$y;$x+=5) ?> geben Sie im letzten Parameter an, wie viele Bilder pro Tabellenzeile angezeigt werden sollen. Da Sie in jeder Tabellenspalte einen anderen Datensatz anzeigen, geben Sie über den Wert $x+.. den gewünschten Datensatz an. Die zweite Dimension des Array enhält die einzelnen Felder und läßt sich über den Spaltennamen ansprechen.

Download des Quelltextes unter http://www.it-studio.net/Artikel/galerie.php



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04511
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0