[PHP] - Bilder aus Datenbank (Galerie) einfach ausgeben lassen?

Diskutiere mit über: [PHP] - Bilder aus Datenbank (Galerie) einfach ausgeben lassen? im Web-Programmierung Forum

  1. Augustiner

    Augustiner Thread Starter MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    Registriert seit:
    25.10.2004
    Hallo zusammen,
    ich möchte Bilder (Thumbnails) deren URL in meiner MySQL-Datenbank liegen einfach in einem table ausgeben lassen, sodass 4 Bilder pro Zeile ausgegeben werden. - Aber wie? :(
    Hab jetzt schon endlos gegoogelt und sowohl hier, als auch bei tutorials.de gesucht, aber alles was ich bisher gefunden hab...
    ... hat entweder gar nicht erst funktioniert
    ... war für meinen Zweck völlig ungeeignet (riesen Gallery-Scripts mit x-unnötigen Funktionen)
    ... war schlecht kommentierter Quellcode, sodass ich (als Anfänger) nur Bahnhof verstanden hab.

    Wäre über ein paar gute Ratschläge echt sehr dankbar :-/

    Gruß
    Augustiner
     
  2. Darkstar

    Darkstar MacUser Mitglied

    Beiträge:
    160
    Zustimmungen:
    0
    Registriert seit:
    17.07.2004
    Hallo,

    lies die Bilder als Array aus der Datenbank aus und geh danach mit einer foreach schleife durch das array. Zähle dabei noch ne variable hoch und wenn diese dann die anzahl der bilder in deiner zeile erreicht hat, beginne einfach eine neue.

    z.B.:
    PHP:
    //zugriff auf datenbank kann auch anders sein
    $res $db->query("SELECT ..... FROM ... WHERE....");
    $images $db->sql_fetch_assoc($res);

    $rows 4;
    $i=0;
    echo 
    '<table><tr>';
    foreach (
    $images as $image) {
      echo 
    '<td><img src="'.$image.'" /></td>';
      if (
    $i $rows) {
        
    $i++;
      }
      
    //4 bilder pro zeile sind erreicht, neue anfangen
      
    else {
        echo 
    '</tr><tr>';
        
    //wieder von vorne zu zählen beginnen
        
    $i=0;
      }
    }
    echo 
    '</tr></table>';
    Hmm hab es zwar jetzt nicht wirklich ausprobiert, aber so wäre das z.b. ne Möglichkeit... wird dann noch interessant, wenn Du z.B. nur 5 Bilder darstellen willst... dann musst die restl. Zellen in der 2. Zeile noch durch eine Abfrage mit Zellen auffüllen... Gibt sicher noch einfachere Möglichkeiten - aber vielleicht klappt das wie oben ja recht einfach für Dich :)
     
  3. Augustiner

    Augustiner Thread Starter MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    Registriert seit:
    25.10.2004
    -- updated --

    Hat sich schon erledigt. Vielen vielen Dank für deine schnelle Antwort. Hast mir sehr geholfen, auch wenn ichs etwas anders gemacht hab (mit fetch_assoc kenn ich mich ned aus; ich machs immer mit fetch_object).

    Hab jetzt so gemacht:

    PHP:
    <?php 

      
    /* Connect */
      
    include "connection.php";
      
      
    $abfrage "SELECT * FROM pics_work";
      
    $ergebnis mysql_query($abfrage);
      

     
      
      
    $rows 3;
      
    $i 0;
      
      echo 
    "<table><tr>";
      
      while (
    $row mysql_fetch_object($ergebnis))
    {


        echo 
    "<td><a href='$row->image'><img src='$row->thumb'></a></td>";
        if (
    $i $rows) { $i++; }
        else { echo 
    "</tr></tr>"$i 0; }
       

    }

      echo 
    "</tr></table>";
      

        
    ?>
    Anbei:
    Wenn ich $rows auf den Wert "4" setze, bekomme ich am Ende 5. Keiner weiß warum; ist auch recht unwichtig, denn wenn ichs auf "3" setze dann bekomm ich mein gewünschten 4 Reihen =)
    Danke nochmals :)
     
    Zuletzt bearbeitet: 17.09.2006
  4. ThaHammer

    ThaHammer MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    Registriert seit:
    01.06.2004
    Ist doch ganz klar, php fängt mir 0 zum zählen an. Du zählst bis 4, macht 5 durchläufe!
    0 1 2 3 4
     
  5. Sovok

    Sovok MacUser Mitglied

    Beiträge:
    36
    Zustimmungen:
    0
    Registriert seit:
    10.06.2005
    Nur so am Rande.. Statt

    PHP:
    if ($i $rows) { $i++; }
        else { echo 
    "</tr></tr>"$i 0
    kannst du auch

    PHP:
    if ($i $rows == 0) echo "</tr><tr>";
    schreiben (wenn $i von 1 startet).

    Bei deinem Code mit den Tabellen werden jetzt allerdings manche Spalten (td) weggelassen. Da wärs besser leere td einzufügen, also die Schleife immer bis zu einem vielfachen von 4 weiterlaufe zu lassen.

    Oder noch besser: keine Tabellen. Einfach die Bilder mit <br /> statt <tr>. So brechen sie um, wenn das Browserfenster zu schmal ist..

    PHP:
     <?php 

      
    include "connection.php";
      
      
    $abfrage "SELECT * FROM pics_work";
      
    $ergebnis mysql_query($abfrage);
     
      
    $rows 3;
      
    $i 1;  
      
      while (
    $row mysql_fetch_object($ergebnis)) {

        echo 
    "<a href='$row->image'><img style='margin: 10px;' src='$row->thumb'></a>";
        if (
    $i%$rows == 0) echo "<br />";
        
    $i++;



    ?>
     
Die Seite wird geladen...
Ähnliche Themen - [PHP] Bilder aus Forum Datum
Werte der gleichen Schlüssel summieren (assoziativen Array) Web-Programmierung 25.08.2016
einfaches php. emailformular bei strato Web-Programmierung 08.08.2015
Bilder per PHP bei Neuaufruf wechseln? Web-Programmierung 26.09.2011
PHP: viele Bilder mit einem Klick herunterladen Web-Programmierung 04.10.2007
PHP und Bilder... wie erfahre ich DPI? Web-Programmierung 15.09.2005

Diese Seite empfehlen

Benutzerdefinierte Suche