Php Gallery Previous / Next

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Php Gallery Previous / Next

    Also ich habe folgendes Problem. Ich habe in einer Datenbank diverse bilder die ich nun Categorieweise ausgebe. Nun ist es so wenn ich dann auf ein Bild klickt wird es in voller grösse dargestellt. Ich möchte nun unter dem Bild ein previous / next link. Ich habe da schon ein bischen rumprobiert aber leider habe ich da wohl ein Denkfehler. Ich weiss nicht wie ich es machen soll das ich nachdem ich alle bilder ausgelesen habe den array wert "erhöre" damit ich immer die nächste Bilder id habe die mit der selben Cat id gespeichert ist.

    PHP Code:
    // Normale Ausgabe
    $query "SELECT * FROM $btable where id='" $_GET["id"] . "'";
    $result mysql_query($query) or die (mysql_error());
    $array=mysql_fetch_array($result);
    $picid $array['id']; 
    Dann habe ich schon das letzte und 1. Bild ausgelesen damit ich weiss wo "anfang" und "ende" ist.

    PHP Code:
    // 1. id auslesen und zuweisen
    $query "SELECT * FROM $btable where catid='" $_GET["catid"] . "' order by id limit 1";
    $result mysql_query($query) or die (mysql_error());
    $array=mysql_fetch_array($result);
    $picidfirst $array['id']; 
    PHP Code:
    // letzte id auslesen und zuweisen
    $query "SELECT * FROM $btable where catid='" $_GET["catid"] . "' order by id desc limit 1";
    $result mysql_query($query) or die (mysql_error());
    $array=mysql_fetch_array($result);
    $picidlast $array['id']; 
    Jetzt fehlt mir halt praktisch das dazwischen das ich immer die nächste bild id ausgebe . Das problem ist das ich nicht weiss wie ich das machen soll das ich die Id erhöhe. Weil ich ja nicht einfach +1 oder so machen kann da die bilder id nicht fortlaufen ist. Ich muss also alle bilder auslesen und dann immer das nächste aber wie mache ich das ?

  • #2
    LIMIT kennt 2 parameter => startpunkt, anzahl der datensätze

    - du weisst, wieviel datensätze in der db sind => SELECT COUNT(*) FROM ...
    - du startest bei 0
    - du holst das erste bild => SELECT .... LIMIT $startwert,1
    - den startwert "vorblättern" hast du mit $startwert +1
    - den startwert "zurückblättern" hast du mit $startwert - 1

    jetzt musst du nur noch festlegen, wass passieren soll, wenn der übergebene startwert > als die anzahl datensätze - 1 ist ODER < als 0 => if/else
    Kissolino.com

    Comment


    • #3
      Ne das ist ja das problem ich kann ja nicht einfach startwert + 1 machen oder ? bzw wie erhöhe ich den denn? Weil ist ja immer die selbe seite die ich aufrufe .. merkt er sich das ? oder muss ich das übergeben ? sessions ? oder wie ?

      Comment


      • #4
        1. Bild LIMIT 1,1
        2. Bild LIMIT 2,2
        3. Bild LIMIT 3,3
        ...
        n. Bild LIMIT n,n

        Denk dir 'ne Strategie aus

        Comment


        • #5
          PHP Code:
          $s 0;
          echo 
          '<br>';
          echo 
          $s = ++$s;
          echo 
          '<br>';
          echo 
          $s $s+1;
          echo 
          '<br>';
          echo 
          $s += 1
          such dir was aus ^^

          den wert berechnest du und übergibst ihn per GET über die url des blätterlinks ... so schlau, dass php das merkt, ist es noch nicht
          Kissolino.com

          Comment


          • #6
            @asp2php

            genau das ist ja mein problem

            Comment


            • #7
              du machst einfach so:
              PHP Code:
              $s 1;
              if (isset(
              $_GET['s'])) $s=$_GET['s'];
              ...
              $query "SELECT * FROM $btable where catid='" $_GET["catid"] . "' order by id limit $s,$s";
              ...
              // link für Navi
              $s++;
              echo 
              "<a href=\"".$_SERVER['PHP_SELF']."?catid=$DeinCatVar&s=$s\">next</a>"
              dies ist nur für vorwärst. Du musst noch für rückwärst und die Sonderfälle:
              $s<1 und $s>=MaxAnzahlVonDaten abfangen.

              Comment


              • #8
                oh mann das ist alles zu hoch für mich weil ich habe da noch die pic id die ich mit übergebe und somit geht das ja nicht mit der seiten id

                Ich habe nun mal den kompletten code der Bilder ausgabe im nopaste gepostet. Weil sonst wird das glaube ich nichts mit der ordentlichen erklärung. Das ist nunmal ohne komplette navigation. Da möchte ich das halt einbauen. Sitzte da nun schon seit über 2 stunden dran und probiere rum


                http://nopaste.php-q.net/85981

                Danke für eurer hilfe

                Comment


                • #9
                  dann erweitert die echo zeile um einen URL-Parameter. Wo ist das Problem?

                  Fertige Scripte bekommst du hier nicht, nur Hilfestellung

                  Comment


                  • #10
                    Ja aber das überschneidet sich doch dann mit der abfrage der bilder id ? versteht du was ich meine ?
                    Last edited by quicksilver; 21-09-2004, 13:44.

                    Comment


                    • #11
                      es kommt auf die Gestaltung deiner Links auf. Du kannst sogar soweit treiben, dass entweder nur id oder catid übergeben wird. Per isset prüfst du auf Existenz und baust deine Abfrage der Situation entsprechend zusammen, und somit Links für die nächste Aktion. Was dir fehlt, ist Grundlagen

                      Comment


                      • #12
                        Ja kann ja sein bzw ist wohl so

                        Aber kann ich denn nicht irgendwie wenn ich der datei id 24 übergebe irgendwie "berechnen" welche die nächste ist ? indem ich alle werte auslese und die array id bestimme... und dann einfach das nächste nehme ?

                        Comment


                        • #13
                          nimmt ein Blattpapier, zeichne den gewünschten Ablauf dann wirst du schon sehen, was zu tun ist.

                          Comment


                          • #14
                            ^hm ich weiss ja was zu tun ist nur kenne ich leider die befehle dazu nicht wie ich z.b. an die nächste position des arrays komme usw.

                            Comment

                            Working...
                            X