Php Gallery Previous / Next

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

  • 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

    Kommentar


    • #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 ?

      Kommentar


      • #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

        Kommentar


        • #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

          Kommentar


          • #6
            @asp2php

            genau das ist ja mein problem

            Kommentar


            • #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.

              Kommentar


              • #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

                Kommentar


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

                  Fertige Scripte bekommst du hier nicht, nur Hilfestellung

                  Kommentar


                  • #10
                    Ja aber das überschneidet sich doch dann mit der abfrage der bilder id ? versteht du was ich meine ?
                    Zuletzt geändert von quicksilver; 21.09.2004, 13:44.

                    Kommentar


                    • #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

                      Kommentar


                      • #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 ?

                        Kommentar


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

                          Kommentar


                          • #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.

                            Kommentar

                            Lädt...
                            X