[PHP] Dynamische Bilder Gallery

k7power

Lt. Junior Grade
Registriert
Juni 2003
Beiträge
443
Hi,

ich wollte mir eine dynamische Bilder Gallery machen, bei der die neu hochgeladenen Bilder immer an den "Anfang" kommen sollen. Ich wollte die Bilder in eine Tabelle packen und nach unten hin auflisten. Wie kriege ich es hin, dass die neusten Bilder ganz oben sind. Soll ich dazu eine Datenbank benutzen und das Datum und Dateinamen in die DB übertragen und nach dem Datum sortieren lassen oder gibt es eine leichtere und elegantere Lösung. Es muss möglichst sehr schnell sein, denn ich will ca. 50-100 Bilder aufeinmal darstellen.
 
Ne einfachere Möglichkeit als sortieren? Sortieren ist aber genau das, was du brauchst.
 
Das ist mir auch klar. Ich weiss nur nicht, wie ich das Sortieren vornehmen soll. Ich könnte ja auch alle Dateinamen in ein Array speichern und das Array sortieren. Ich brauch halt die Lösung, die am schnellsten ist.
 
Hallo,

ich würde ebenfalls eine Lösung mit einer Datenbank bevorzugen und die Bilder dann entsprechend sortieren lassen. Aber wenn es sich sowieso nur um 50-100 Bilder handelt sollte auch eine andere Möglichkeit nicht so ins Gewicht bezüglich der Geschwindigkeit fallen.

MfG mh1001
 
Also eigentlich kommen später noch mehr Bilder dazu. Das wird sich in den Jahren so ansammeln.
 
Welche Datenbank benutzt du? Bei MySQL gibts ne Zahl die heißt Timestamp. Das kannst du nutzen und dann einfach SORT SQL Statement auf die Spalte :)
 
@ frow

Ja benutze SQL. Ok, dann mache ich das mit einer DB. THX
 
Hmm ich habe hier eine Gallery rumliegen, die dir automatisch alle Bilder aus einem bestimmten Ordner anzeigt, der einzige Nachteil an dem Teil ist nur, dass die Thumbnails halt einfach verkleinerte original Bilder sind... Das heisst, dass die Thumbnails genauso viel Traffic erzeugen wie die Originale, und das kann bei einer Gallery, wo die Bilder größer als 300kb sind, ganz schön nerven (vor allem Modem und ISDN User :evillol:). Ich weiss nicht, in welcher Reihenfolge er die Bilder abruft... ich kann ja mal gerade den Sourcecode posten:

PHP:
<?php
 // Setup ANFANG

    // Ordner angeben, in dem sich die Bilder befinden, Bsp. "bilder"
    $setup['ort'] = './bilder/';

    // Seitentitelangeben, Bsp. "titel"
    $setup['titel'] = 'titel';

    // Bildeinstellungen (Höhe und Breite) in px, Bsp.: Höhe = 400 px, Breite = 300 px, bzw. umgekehrt bei Hochkantbildern
    $setup['bild']['breite'] = 400;
    $setup['bild']['hoehe'] = 300;

    // Thumbseinstellungen (Höhe und Breite) in px, Bsp. Höhe = 90 px, Breite = 120 px, bzw. umgekehrt bei Hochkantbildern
    $setup['thumbs']['breite'] = 80;
    $setup['thumbs']['hoehe'] = 60;

    // Anzahl der Bilder, nach der ein Zeilenumbruch erfolgen soll, Bsp. 5. 0 = kein Umbruch
    $setup['umbruch'] = 4;

    // Abstand um ein Bild in px, Bsp. 10 px
    $setup['abstand'] = 10;

 // Setup ENDE

 $ordner = dir($setup['ort']);
 while($datei = $ordner->read())
 {
    @getimagesize($setup['ort'].$datei) ? $anzahl++ : false;
 }
 $ordner->rewind();

 //HTML Grundgerüst; bitte nur mit Vorsicht verändern
 print '
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

 <html>
  <head>
   <title>'.$setup['titel'].'</title>
   <style type="text/css">
    <!--
     h1
     {
        margin: 0px 85px 45px 0px;
        font: normal bold 22px Verdana, Arial, Helvetica, sans-serif;
     }
     h2
     {
        margin: 0px 0px 35px 35px;
        font: normal bold 18px Verdana, Arial, Helvetica, sans-serif;
     }
     h3
     {
        margin: 5px 0px 0px 0px;
        font: normal bold 14px Verdana, Arial, Helvetica, sans-serif;
        text-align: right;
     }
    -->
   </style>

  </head>

  <body>

   <table cellspacing="0" cellpadding="0" border="0" align="center">'."\n";

 print '    <tr height="'.($setup['bild']['breite'] + 10).'">'."\n";

 print '     <td colspan="'.$setup['umbruch'].'" style="border-bottom: 1px solid #000000;" align="center">';

 if(!isset($_GET['bild']))
 {
    // Zum Editieren!!!

    print '      <h1>Herzlich Willkommen...</h1>';
    print '      <h2>...auf der Gallery des</h2>';
    print '      <h3>(Zu editieren in Zeile 77)</h3>';

    // ENDE
 }
 else
 {
    if($bild = @getimagesize($setup['ort'].$_GET['bild']))
    {
        if($bild[0] >= $bild[1])
        {
            $masse = 'width="'.$setup['bild']['breite'].'" height="'.$setup['bild']['hoehe'].'"';
        }
        else
        {
            $masse = 'width="'.$setup['bild']['hoehe'].'" height="'.$setup['bild']['breite'].'"';
        }

        print '      <img src="'.$setup['ort'].$_GET['bild'].'" '.$masse.' border="0" />';
    }
 }

 print '     </td>';
 print '    </tr>';

 print '    <tr height="'.($setup['thumbs']['breite'] + 10).'">'."\n";
 // Ende HTML Grundgerüst

 while($datei = $ordner->read())
 {
    if(is_file($setup['ort'].$datei))
    {
        if($bild = @getimagesize($setup['ort'].$datei))
        {
            if($bild[0] >= $bild[1])
            {
                $masse = 'width="'.$setup['thumbs']['breite'].'" height="'.$setup['thumbs']['hoehe'].'"';
            }
            else
            {
                $masse = 'width="'.$setup['thumbs']['hoehe'].'" height="'.$setup['thumbs']['breite'].'"';
            }

            if((($durchlauf % $setup['umbruch']) == 0) && ($setup['umbruch'] != 0) && $durchlauf != 0)
            {
                print "    </tr>\n    <tr height=\"".($setup['thumbs']['breite'] + 10)."\">\n";
                $zeile++;
                if($zeile == (ceil($anzahl / $setup['umbruch'])))
                {
                    print '     <td colspan="'.$setup['umbruch'].'">';
                    print '      <table align="center" cellspacing="0" cellpadding="0" border="0"><tr>';
                }
            }

            print '     <td align="center" valign="center"><a href="?bild='.$datei.'"><img src='.$setup['ort'].$datei.' '.$masse.' border="0" style="padding: '.$setup['abstand'].'px;" /></a></td>'."\n";
            $durchlauf++;
        }
    }
 }
 unset($durchlauf);

 print '  </tr></table></td></tr></table>'."\n";
 print ' </body>'."\n";
 print '</html>'."\n";
?>

Du solltest die Gallery dann mal konfigurieren, wie du willst.
(Siehe Setup am Anfang und Zeile 75-77 den Text)


mfg Tommi

PS: Bei Fragen, schick mir ne PN / Mail oder frag mich per ICQ (sollte eigentlich alles im Profil stehen)
 

Ähnliche Themen

M
Antworten
3
Aufrufe
2.388
Mr. Snoot
M
Zurück
Oben