Softwareentwicklung & Webdesign 
EDV Dienstleistungen für KMU        
 



Halbvoll.net- Singlebörse für alleinerziehende Mütter und Väter aus Deutschland, Österreich, Schweiz und Liechtenstein
www.halbvoll.net
 
Gebrauchtwagen Suchmaschine Österreich
Diskontweb.net
 
Alleinerzieher.net - Forum für Alleinerziehende
Diskontweb.net
 
Freizeit-mit-Kind.net - Freizeitaktivitäten für Eltern und Kinder (Deutschland)
Freizeit mit Kind
 
Softworker.at
Projekte für Freelancer
Softworker.at - Projekte für Freelancer
 
Druckauftrag.at - Druckereiaufträge ausschreiben und den billigsten Anbieter finden.
Druckauftrag.at
 
Seminarpool - Das Österreichische Verzeichnis für Seminare, Trainer, Coaches und Referenten
 

 

Bildergalerie

von Wolfgang Arnberger

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");
$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:

<?
// 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.

© IT-Studio.net - Alle Rechte vorbehalten
 
 Home   Leistungen   Referenzen   Artikel   ECG   AGB   Kontakt   Impressum