[PHP] Bildergalerie mit Kategorie - Hilfe benötigt

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Estorado, 29. September 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 29. September 2008
    Bildergalerie mit Kategorie - Hilfe benötigt

    Hallo RR Webmasterchiefs,

    ich benötige eure Hilfe zum Thema PHP & MySql.

    Ich möchte mir selbst eine kleine Bildergalerie anlegen die wie folgt aussehen soll:

    Kategorie 1
    Bild 11, Bild 12, Bild 13

    Kategorie 2
    Bild 21, Bild 22, Bild 23

    Die Sortierung ist vorerst egal.

    Ich habe folgende Überlegung angestellt:
    Ich brauche zwei Tabellen, einmal eine galerie_cat und eine galerie. Die Tabelle galerie_cat (mit den Kategorien) soll mit der Tabelle galerie (mit den Bildern) verknüpft werden.

    Folgenden Ansatz hätte ich hier gefunden:

    PHP:
      include( 'inc/mysql.inc.php' );
       
    mysql_connect ( $host , $user , $pw ) OR DIE ( 'Konnte nicht mit MySQL verbinden.' );
       
    mysql_select_db ( $db ) OR DIE ( 'Konnte nicht mit Datenbank auf MySQL verbinden.' );
       
            
    //Einträge zählen
            
    $sql  'SELECT ID, Title, Ordner FROM galerie_cat ORDER BY ID DESC' ;
            
    $result  mysql_query ( $sql ) OR die( mysql_error ());
            
            
    $row = mysql_fetch_object ( $result );
            
            
    $cat_id = $row -> ID ;
            
    $cat_title = $row -> Title ;
            
    $cat_ordner = $row -> Ordner ;
            echo 
    '<h3>'  . $cat_title '</h3>' ;
            
            
    mysql_free_result ( $result );
      
    $sql  'SELECT ID, Datei,Beschreibung, Klicks, Cat ID FROM galerie WHERE Cat = '  . $cat_id ;
    $result  mysql_query ( $sql ) OR die( mysql_error ());

    echo 
    '<p>' ;               
    #while abfrage vor der auswahl für die Bilder
        
    while ( $row = mysql_fetch_object ( $result ))
        {
        
    #Spalte wählen und zuorden

          
    $id = $row -> ID ;
          
    $Bild = $row -> Datei ;
          
    $beschreibung = $row -> Beschreibung ;
          
    $klicks = $row -> Klicks ;
          
    $kategorie = $row -> Cat ;

        
    #Ausgabe der Bilder
         
    echo  '<a href="galerie/bilder/'  . $cat_ordner '/'  . $Bild '" rel="lightbox[roadtrip]" title="'  . $beschreibung . '">' ;
         echo 
    '<img src="galerie/bilder/'  . $cat_ordner '/thumb/'  . $Bild '" alt="'  . $beschreibung '" /></a>&nbsp;' ;
        }
        
    echo 
    '</p>' ;

    mysql_free_result ( $result );
    Mein Verstand sagt mir, das das ja nicht funktionieren kann, mein Browser bestätigt mir das in Form das er nur die Kategorie anzeigt, die er als erster findet.

    Ich habe schon probiert, mit while in while aber irgendwie geht das nicht.

    Hoffe ihr habt einen Tipp für mich, wie ich das am besten realisieren könnte. Achja, muss nicht unbedingt MySql dabei sein, nur ist mir nichts anderes eingefallen wie ich das machen könnte.

    Gruß
     
  2. 30. September 2008
    AW: Bildergalerie mit Kategorie - Hilfe benötigt

    Du holst dir ja auch nur die erste Kategorie aus der Datenbank. Setz die Kategorien einfach in eine Schleife.
     
  3. 30. September 2008
    AW: Bildergalerie mit Kategorie - Hilfe benötigt

    Könntest du mir ein example geben? Kanns jetzt leider nicht testen, da ich in der Arbeit bin.

    Geht das while in while? Das hat bei mir so irgendwie nicht funktioniert:

    PHP:
    while ( $row = mysql_fetch_object ( $result )); 
             
            
    $cat_id = $row -> ID
            
    $cat_title = $row -> Title
            
    $cat_ordner = $row -> Ordner
            echo 
    '<h3>'  . $cat_title '</h3>'
             
            
    mysql_free_result ( $result ); 
       
    $sql  'SELECT ID, Datei,Beschreibung, Klicks, Cat ID FROM galerie WHERE Cat = '  . $cat_id
    $result  mysql_query ( $sql ) OR die( mysql_error ()); 

    echo 
    '<p>' ;                
    #while abfrage vor der auswahl für die Bilder 
        
    while ( $row = mysql_fetch_object ( $result ))
    (...)
     
  4. 30. September 2008
    AW: Bildergalerie mit Kategorie - Hilfe benötigt

    Allgemeine Tipps:
    - Nutz ein Array und kein Objekt als Ergebnis.
    - Bei mysql_fetch_array empfehle ich dir als resulttype MYSQL_ASSOC (oder MYSQL_NUM, aber bitte nicht beide!)

    Ansonsten zum Script:
    Hol am Anfang zwei Kategorie-IDs raus (wenn du zwei willst) und jetzt diese in einen String (durch Komma getrennt).

    Dann kannst du im SQL-Statement den IN() locker verwenden.
    also "WHERE galerieKategorieID IN(1,2,3)"
    Dann holt er alle Bilder raus, wo die Kategorie-ID der Galerie 1, 2 oder 3 ist.

    Ganz easy.
     
  5. 30. September 2008
    AW: Bildergalerie mit Kategorie - Hilfe benötigt

    habs gefunden, Variablen waren doppelt ...

    hier der überarbeitet Code:
    PHP:
       //mysql verbindung
        
    include( 'inc/mysql.inc.php' );
       
    mysql_connect ( $host , $user , $pw ) OR DIE ( "Konnte nicht mit MySQL verbinden." );
       
    mysql_select_db ( $db ) OR DIE ( "Konnte nicht mit Datenbank auf MySQL verbinden." );
       
            
    //Einträge zählen
            
    $sql  "SELECT Id FROM galerie" ;
            
    $result  mysql_query ( $sql ) OR die( mysql_error ());
        echo 
    "<p>Momentan sind " . mysql_num_rows ( $result ). " Bilder in der Datenbank.</p>\n" ;
        echo 
    "<p>\n" ;
            
        
    mysql_free_result ( $result );


       include(
    'inc/mysql.inc.php' ); 
       
    mysql_connect ( $host , $user , $pw ) OR DIE ( 'Konnte nicht mit MySQL verbinden.' ); 
       
    mysql_select_db ( $db ) OR DIE ( 'Konnte nicht mit Datenbank auf MySQL verbinden.' ); 
        
            
    //Einträge zählen 
            
    $sql_cat  'SELECT ID, Title, Ordner FROM galerie_cat ORDER BY ID DESC'
            
    $result_cat  mysql_query ( $sql_cat ) OR die( mysql_error ()); 
             
     while ( 
    $row_cat = mysql_fetch_object ( $result_cat )) 
             {
            
    $cat_id = $row_cat -> ID
            
    $cat_title = $row_cat -> Title
            
    $cat_ordner = $row_cat -> Ordner
            echo 
    '<h3>'  . $cat_title '</h3>'
             
           
    // mysql_free_result($result); 
       
    $sql  'SELECT ID, Datei,Beschreibung, Klicks, Cat ID FROM galerie WHERE Cat = '  . $cat_id
    $result2  mysql_query ( $sql ) OR die( mysql_error ()); 
     
    echo 
    '<p>' ;                
    #while abfrage vor der auswahl für die Bilder 
        
    while ( $row = mysql_fetch_object ( $result2 )) 
        { 
        
    #Spalte wählen und zuorden 
     
          
    $id = $row -> ID
          
    $Bild = $row -> Datei
          
    $beschreibung = $row -> Beschreibung
          
    $klicks = $row -> Klicks
          
    //$kategorie=$row->Cat; 
     
        #Ausgabe der Bilder 
         
    echo  '<a href="galerie/bilder/'  . $cat_ordner '/'  . $Bild '" rel="lightbox[roadtrip]" title="'  . $beschreibung . '">'
         echo 
    '<img src="galerie/bilder/'  . $cat_ordner '/thumb/'  . $Bild '" alt="'  . $beschreibung '" /></a>&nbsp;'
        } 
         
    echo 
    '</p>'
    mysql_free_result ( $result2 );
    }
    mysql_free_result ( $result_cat );

    mysql_close ()
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.