Du bist nicht angemeldet.

  • Anmelden
  • Registrieren

NoX

Anfänger

Beiträge: 18

1

12.08.2005, 17:23

[PHP] Bildergalerie

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

Zitat


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.

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<? 
function query_into_array($query){ 
settype($retval,"array"); 
$resultmysql_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:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<? 
// 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: hier klicken!

Dieser Artikel stammt von Wolfgang Arnberger http://www.it-studio.net

Thema bewerten