nächstes Foto finden

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

  • nächstes Foto finden

    Hallo,

    ich hab mal wieder ein kleines Problem.
    Ich habe hier eine Fotogalerie wo bei jedem neuen Foto ein Eintrag in die Datenbanl geschrieben wird.
    id, veranstaltungsid
    Die id ist fortlaufend und wird direkt als Name für das Bild genommen.

    Also id 2832 ist auch Foto 2832.jpg.

    Das funktioniert auch soweit alles wunderbar, nur will ich jetzt einen Pfeil für das letzte und das nächste Bild einbauen wenn ein Benutzer auf ein Foto geklickt hat. Momentan muss er immer wieder zurück und das nächste Vorschaubild anklicken.

    Genug erklärt, nun zum eigentlichen...

    Wie bekomme ich heraus welches Foto als nächstes kommt oder eben welches davor kommt ?

    Wenn zu einer Veranstaltung 10 Fotos da sind, sind es nicht automatisch 1 - 10, sondern auch 1,2,4,9,13...
    Also nicht direkt fortlaufend, da auch nachträglich noch Fotos hochgeladen werden können.

    Wie kann ich also rausbekommen welche id nach der aktuellen dran wäre ?

  • #2
    Übergib im Limk die ID des aktuell angezeigten Bildes und einen zweiten Parameter dir=up oder dir=down

    danach selektierst du (bei dir=up) die kleinste ID, die größer als die übergeben ist (>, ORDER BY und LIMIT helfen)
    für dir=down ist es vom prinzip her genauso
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      stark vereinfacht:

      nehmen wir an, du hast ids: 1 2 3 5 6 9 11

      Code:
      gal.php?id=6&action=next
      $_GET['action'] abfangen, id auch.
      Code:
      SELECT MIN(`id`) AS next_id FROM `tab_gal` WHERE `id` > 6
      weiter selbst:
      PHP-Code:
      zeige_bild_nr($next_id); 
      etc...

      Kommentar


      • #4
        Was (welche Spalte der Tabelle) identifiziert denn Fotos als 'zu einer Veranstaltung gehörend'?

        Ich nehme mal an es gäbe eine Spalte event.
        Dann ginge es mit

        SELECT * FROM tabelle WHERE event = $event AND id < $id ORDER BY id DESC LIMIT 1
        UNION
        SELECT * FROM tabelle WHERE id = $id
        UNION
        SELECT * FROM tabelle WHERE event = $event AND id > $id ORDER BY id ASC LIMIT 1

        Kommentar


        • #5
          Danke danke danke...

          mrhappiness`s Antwort hat mir den richtigen Anstoß gegeben.
          Funktioniert einwandfrei.
          Danke auch den anderen beiden für die Hilfe, letzteres Beispiel ist fast genau das was ich nun nutze.

          Kommentar

          Lädt...
          X