Tunnel85: MySql Bilder vor und zurück button

Hallo zusammen,
habe in meiner Seite ein Uploadscript für mehrere Bilder. Die Daten werden in einer MySql Tabelle gespeichert. Bis jetzt war es so, das ich die Bilder selber eingepflegt habe, allerdings soll das jetzt durch dieverse Personen geschehen. Bis jetzt konnte ich die Bilder anzeigen lassen, um an Hand der ID auf das nächste, bzw. das vorherige Bild verlinken (Schleife i++). Das Problem ist wenn nun ein Datensatz gelöscht wird, kann ich ja nicht mehr an Hand der ID weiterzählen. Wie bekomme ich trotzdem meine weiterbuttons ???
Habe leider absolut keine Idee wie ich es hinbekommen könnte, bin also um jeden Tipp dankbar

Gruß
Tunnel

  1. Bei der Abfrage nach id sortieren, nach größergleich der nächsten, potentiell gelöschten ID suchen und Limit auf 1 setzen.

    1. Bei der Abfrage nach id sortieren, nach größergleich der nächsten, potentiell gelöschten ID suchen und Limit auf 1 setzen.

      Hi,
      danke erstmal, aber so ganz verstanden hab ich es noch nicht.
      wie soll ich den nach der nächsten gelöschten id suchen???
      Und wieso größergleich???

      Gruß
      Tunnel

      1. Grüße,

        danke erstmal, aber so ganz verstanden hab ich es noch nicht.
        wie soll ich den nach der nächsten gelöschten id suchen???

        WHERE id>=n LIMIT 0,1 nehme ich an.

        Und wieso größergleich???

        für den fall dass es nicht oder gelöscht wurde.

        Gruß
        Tunnel

        MFG
        bleicher

        --
        __________________________-
        Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
        http://www.sexgott-or-not.com/?test=428054
        1. Das ist ja total einfach....
          Hätte man eigentlich selber drauf kommen können...
          Ist irgendwie nicht mein Tag heute...
          Komisch nur das ich trotz langer Suche nichts zu dem Thema gefunden habe...

          Tausend Dank an Euch und den Freiden der Nacht

          Gruß
          Tunnel

      2. Es ist doch so oder?:

        Bild|id
        abcd|1
        efgh|2
        ...
        xyz|10

        Jedes neue Bild bekommt eine neue höhere id (autoincrement).

        Wenn das aktuelle Bild die id 3 hat, dann sucht man nach >=4. Da die Suche nach id sortiert erfolg und nur ein Ergebnis zurückgegeben wird, wird das die nächsthöhere vorhandene id nach id 3 sein (oder es gibt keine mehr, dann wird ein leeres Ergebnis zurückgegeben).

        Du kannst auch nach größer als aktuelle id suchen, das kommt auf Gleiche raus.

        Für die nächst niedrigere id bekommst Du das nun sicher selber hin.

  2. Hello,

    [...] wenn Du die Daten per Get-Parameter übergibst, würde der dann z.B. so aussehen:

    http://example.com/galerie/show.php?id=15&cmd=next

    und im Script käme dann im Array $_GET an

    $_GET['id'] -> 15
       $_GET['cmd'] -> next

    und das kannst Du dann abfragen:

    aktuelle ID abfragen

    $id = 0;
    if (isset($_GET['id']))
    {
        $id = intval($id);      ## intval(), um Injection bei $id zu verhindern
    }

    Kommande abfragen

    if (isset($_GET['cmd']) and $_GET['cmd'] == 'next')
    {
       $sql = "select picpath from gallery where id > '$id' order by ìd limit 1";
    }
    elseif (isset($_GET['cmd']) and $_GET['cmd'] == 'prev')
    {
       $sql = "select picpath from gallery where id < '$id' order by ìd desc limit 1";
    }
    elseif ( ... )
    {
       ## weitere Commands

    }
    else
    {

    ## defeult, falls kein Kommando vorhanden ist
    }

    Die aktuelle ID kannst Du entweder im Link, oder wenn Du ein Formular mit der Post-Methode nutzen willst, auch als hidden-Value übertragen oder noch besser speicherst Du sie dann in der Session und gibst sie dem Client gar nicht bekannt. Die Kommandos reichen dann ja.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Die aktuelle ID kannst Du entweder im Link, oder wenn Du ein Formular mit der Post-Methode nutzen willst, auch als hidden-Value übertragen oder noch besser speicherst Du sie dann in der Session und gibst sie dem Client gar nicht bekannt. Die Kommandos reichen dann ja.

      Damit jede Seite einzeln verlinkbar ist, Stichwort Benutzerfreundlichkeit, sollte die aktuelle id im Link stehen. Wenn man das macht, ist es beim Button auch nicht nötig sich bedeckt zu halten (außerdem kopiere ich oft das Linkziel aus dem Link und nicht aus der Adreßzeile).

      1. Hello,

        Die aktuelle ID kannst Du entweder im Link, oder wenn Du ein Formular mit der Post-Methode nutzen willst, auch als hidden-Value übertragen oder noch besser speicherst Du sie dann in der Session und gibst sie dem Client gar nicht bekannt. Die Kommandos reichen dann ja.

        Damit jede Seite einzeln verlinkbar ist, Stichwort Benutzerfreundlichkeit, sollte die aktuelle id im Link stehen. Wenn man das macht, ist es beim Button auch nicht nötig sich bedeckt zu halten (außerdem kopiere ich oft das Linkziel aus dem Link und nicht aus der Adreßzeile).

        Das ist eine Voraussetzung, dass man das festlegt. Soll verlinkt werden können, oder nicht?
        Das sollte für jeden Abschnitt in einem System eindeutig bestimmt werden bei der Programmplanung.

        Nicht verlinkbare Selektionen sind dann tunlichst als Post aufzubauen.

        Liebe Grüße aus Syburg bei Dortmund

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de