Daten aus Db iin Array lesen + anzeigen lassen (mehrdimensionales Array?)

kazekage

Grünschnabel
Hallo Leute,
steh grad ein wenig auf der Leitung :)

User können Einträge erstellen diese werden in tabelle arbeiten gespeichert.
Pro Eintrag können max. 10 Bilder geuploaded werden. Diese Bilder werden in einem Ornder und der Pfad dorthin in der tabelle bilder gespeichert

Für jedes Bild wird ein Datensatz erstellt das sieht dann so aus

BildID -> fortlaufend
BildNr -> von 1-10 + 0 für das Thumbnail
Bild -> der Pfad zum Bild
PK -> ID des Eintrages zu dem das Bild gehört

BSP:
ID = 5
BildNr = 4 für das 4te Bild
Bild = blabla.jpg
PK = 6 -> dh dad Bild gehört zu Eintrag Nr. 6

Ich lese die Bilder auf einer anderen Seite in einen Lightbox Container.
PROBLEM: Ich brauche die Bilder 2-10 in einem Array und das Bild 1 und das Thumbnail extra.

Das soll so funktionieren dass man das Thumbnail sieht bei click darauf öffnet sich die Lightbox und man sieht das Thumbnail in groß= Bild 1. Durch weiterklicken sieht man Bilder 2-10 wobei Bilder die leer sind aus dem array rausgeschmissen werden (da man sonst in der lightbox ne fehlermeldung hat)

wie krieg ich nun meine bilder in das array********

PHP:
$sql ="SELECT * FROM arbeiten, bilder WHERE bilder.PK = arbeiten.ID ORDER BY Sortierung ASC";
                    $result = mysql_query($sql);
                      while ($row = mysql_fetch_object($result))
                    {?>
                    <li>
                        <?  $array = array($row->Bild 2-10);
                         
                            echo "<a href='".$row->Bild1."' rel='lightbox-gallery".$row->ID."'><img src='".$row->Bild0 bzw. Thumb."'/></a>"; 
                             foreach ($array as $image){
                                if ($image == ''){
                                unset($image);}else{    
                            echo "<a href='".$image."' rel='lightbox-gallery".$row->ID."' style='display:none;'></a>";
                            
                                }}
        ?>    
                            <div class="lightbox-content">
                            <strong class="title"><?=$row->Titel_Lang?>: <?=$row->Werbemittel_Lang?> </strong>
                            <p><strong>Die Aufgabe:</strong> <?=$row->Aufgabe?> <br/>
                            <strong>Unsere Lösung:</strong> <?=$row->Loesung?></p>
                            <a href="#" class="close">Close</a>
                        </div>
                        <h2><a href="#"><?=$row->Titel_Kurz?></a></h2>
                        <em><?=$row->Werbemittel_Kurz?></em>
                    <?                                    
                    }                                   
                    ?>
 
PHP:
$pics = array(); //array für die Bilder
  while ($row = mysql_fetch_object($result))
  {
    $pics[] = array('name' => $row->Bild
                    'bild' => $row->BildNr);  
  }

so bekommst du die in einen array.
Dann kannste die so abrufen:
$pics[$x][name] bzw $pics[$x][bild].

Ich würde die Spalten anders benennen aber das ist Geschmackssache.

wenn du dann nur die Bilder 2-letztes (wer weiß ob es 10 gibt) ausgeben willst, dann geht das in etwa so:
PHP:
for($x=1;$x++;$x<count()) {
  echo 'Dies ist Bild Nr: '.$pics[$x][bild].' es heißt: '.$pics[$x][name];
}
oder
PHP:
for($x=1;$x++;$x<count()) {
  echo 'Dies ist Bild Nr: '.($x+1).' es heißt: '.$pics[$x][name];
}
geht auch. Beide Varianten erfordern, das du nach der BildNr sortiert hast, sonst stimmt die reinfolge nicht, dann müsstest du den Array sortieren (das geht aber auch ;))
 
Zuletzt bearbeitet:
Zurück