Blätterfunktion für Bilder Gallerie

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Blätterfunktion für Bilder Gallerie

    Ich möchte eine Blätterfunktion für ein Bilder Gallerie erstellen.

    Das Problem ist, wenn zwischen drinnen ein Datensatz fehlt funktioniert das blättern nicht mehr wenn ich vom aktuellen Bild einfach eins abziehe bzw dazu zähle.

    Wie kann ich das Problem lösen das er mir immer die nächste photo_id für das blättern verwendet.

    PHP-Code:
        // Bilder Zurück                                                                      
        
    $bilder_back mysql_query" SELECT photo_id, photo_caption, photo_filename, photo_category 
                                            FROM "
    .GAL_PHOTOS_TABLE."
                                            WHERE photo_id = "
    .$pic_id."-1
                                            AND photo_category = '"
    .$cid_id."'
                                            ORDER BY photo_id
                                         " 
    );
        
        
    $back mysql_fetch_array($bilder_back);
                                         
        
    $total_back mysql_num_rows($bilder_back);

        if( 
    $total_back == )
        {
            
    $nav_back " ".$lang['View_prev_pic']." ";
        } else {
            
    $nav_back "
            <a href=index.php?aktion=album&amp;cid=
    $cid&amp;pid=".$back['photo_id'].">".$lang['View_prev_pic']."</a>";
        } 
    in der ruhe liegt die kraft

  • #2
    Re: Blätterfunktion für Bilder Gallerie

    Original geschrieben von maffy
    Das Problem ist, wenn zwischen drinnen ein Datensatz fehlt funktioniert das blättern nicht mehr wenn ich vom aktuellen Bild einfach eins abziehe bzw dazu zähle.
    So einen Unsinn macht man ja auch nicht.

    Eine ID dient ausschließlich dazu, einen Datensatz eindeutig zu identifizieren, Punkt.
    Wie kann ich das Problem lösen das er mir immer die nächste photo_id für das blättern verwendet.
    Das nächste Bild ist das, welches bei nach dem von dir zu wählenden Ordnungskritierium als nächstes auf das aktuelle folgt.

    Du möchtest also WHERE, ORDER BY und LIMIT sinnvoll kombiniert einsetzen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wenn das Bild bzw. der Datensatz gelöscht wird fehlt die ID und es gibt eine Lücke, oder etwa nicht?
      in der ruhe liegt die kraft

      Kommentar


      • #4
        Original geschrieben von maffy
        Wenn das Bild bzw. der Datensatz gelöscht wird fehlt die ID und es gibt eine Lücke, oder etwa nicht?
        Eine Lücke worin?

        Ich sag's gerne noch einmal: Ein ID dient ausschließlich zur eindeutigen Identifizierung eines Datensatzes, und nicht um irgendeine Art von Sortierung oder Ordnung herzustellen.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          So sollte es jetzt funktionieren.

          Das Problem war, das er beim Zurückblättern immer nur den ersten Datensatz in der Kategorie angezeigt hat, aber nicht den aktuell folgenden Datensatz.

          So sollte es aber jetzt funktionieren oder?

          PHP-Code:
              // rückwärts:
                  
          $back         "select photo_id from ".GAL_PHOTOS_TABLE."  where photo_id < '".$pic_id."' AND photo_category = ".$cid." LIMIT 1";
                  
                  if ( !(
          $result_back mysql_query($back)) )
                  {
                      
          message_bar("Fehler : <br><br> ".$back." <br><br> ".mysql_error()."");
                  }
                  
                  
          $backid mysql_fetch_array($result_back);
                  
                  
          $total_back mysql_num_rows($result_back);

                  if( 
          $total_back == )
                  {
                  
          $nav_back " ".$lang['View_prev_pic']." ";
                  } else {
                  
          $nav_back "<a href=index.php?aktion=album&amp;pid=".$backid['photo_id']."&amp;cid=".$cid.">".$lang['View_prev_pic']."</a> ";
                  } 
          Zuletzt geändert von maffy; 09.04.2006, 10:36.
          in der ruhe liegt die kraft

          Kommentar


          • #6
            Ok, da war noch ein kleiner Fehler beim Sortieren drinnen aber jetzt funktioniert's.

            Mein Photo Album:
            Photo Album

            Hier ist mal der Codeteil:

            PHP-Code:

            // Vorletzten Datensatz feststellen
            $back mysql_query(" SELECT * FROM ".GAL_PHOTOS_TABLE.
                    WHERE photo_id < "
            .$pid."
                    AND photo_category = "
            .$cid." ORDER BY photo_id DESC LIMIT 1 ");

            // Nächsten Datensatz feststellen
            $next mysql_query(" SELECT * FROM ".GAL_PHOTOS_TABLE.
                    WHERE photo_id > "
            .$pid."
                    AND photo_category = "
            .$cid." ORDER BY photo_id ASC LIMIT 1  "); 
            in der ruhe liegt die kraft

            Kommentar

            Lädt...
            X