Falk: Linkleiste begrenzen

Hallo,

ich habe folgendes Problem: Aus einer Datenbank werden Bilder geholt und auf einer Seite als Thumbnails ausgegeben. Pro Seite werden 10 Bilder angezeigt. Sind es mehr als 10 Bilder wird ein Verweis generiert auf eine neue Seite. Das klappt alles ganz gut. Nur wenn z.B. 300 Bilder gefunden werden, habe ich unten auf der Seite 30 Links stehen (z.B. 1 2 ... 30), die mein Layout durcheinanderbringen. Wie kann ich es anstellen, dass nur noch z.B. 10 Links angezeigt werden? Und wenn ich auf den 10. klicke erscheinen die nächsten 10 Links (zurück das gleiche). Also im Prinzip wie bei Google.
Würd mich freuen, wenn mir jemand einen Tip geben kann. Ich blicke es momentan überhaupt nicht.

Falk

  1. Hi Falk,

    Würd mich freuen, wenn mir jemand einen Tip geben kann. Ich blicke es momentan überhaupt nicht.

    Also DU weisst doch sicherlich die Gesamtanzahl Deiner Daten, nehmen wir mal an es sind 300.

    Wenn Du die Zahl durch 10 teilst, denn soviel willst DU anzeigen, weisst Du wieviele Seiten es sind, nämlich 30

    Falls bei dieser Division ein Rest herauskommt musst Du noch eine Seite dazurechnen. (Bsp: 305 / 10 = 30,5 --> 31 Seiten)

    Jetzt zu Anzeige:

    Du willst meinentwegen immer nur 10 WeiterLinks anzeigen:
    Du generierst also eine Anzeige die sich auf 10 beschränkt aber von einem bestimmten Startpunkt ausgeht, am Anfang wäre dieser 0. Wenn jetzt jemand den letzten angezeigten Punkt anklickt erhöht sich dieser Startpunkt um das jeweilige Offset und dei nächsten 10 werden angezeigt, dasselbe gilt für den Pfeil zurück.

    Hoffe es hilft

    ciao
    romy

    1. Wenn Du die Zahl durch 10 teilst, denn soviel willst DU anzeigen, weisst Du wieviele Seiten es sind, nämlich 30

      Falls bei dieser Division ein Rest herauskommt musst Du noch eine Seite dazurechnen. (Bsp: 305 / 10 = 30,5 --> 31 Seiten)

      Bis hier ist alles klar.

      Du willst meinentwegen immer nur 10 WeiterLinks anzeigen:
      Du generierst also eine Anzeige die sich auf 10 beschränkt aber von einem bestimmten Startpunkt ausgeht, am Anfang wäre dieser 0.

      Genau hier steige ich aus.

      Hoffe es hilft

      Leider nicht soviel, sorry. Ich weiß gar nicht wie ich da anfangen muß. Soll ich meine Seiten in ein Array packen ?? Keine Ahnung.

      Falk

      1. Hi Falk,

        Bis hier ist alles klar.

        okay

        Du willst meinentwegen immer nur 10 WeiterLinks anzeigen:
        Du generierst also eine Anzeige die sich auf 10 beschränkt aber von einem bestimmten Startpunkt ausgeht, am Anfang wäre dieser 0.
        Genau hier steige ich aus.

        dann bemühe ich mich mal um Klarheit ;)

        Ich habe bisher nur einfach vor und zurück- Leisten gemacht mit der Möglichkeit auch zum Ersten bzw. Letzem Datensatz zu springen. Nun muss ich mich erst eindenken in die andere Möglichkeit wie bei Google.

        Ich glaube, wenn ich mal viel Zeit habe (hoffentlich demnächst, werde ich mal einen Feature-Artikel versuchen zu schreiben, da diese Frage doch häufiger auftaucht.

        Also:
        // wir definieren ein Limit, welchem bestimmt wieviele Bilder
        // auf einmal angezeigt werden
        $limit = 10;

        // wir definieren ein Offset, welches sich ständig verändert
        [wenn offset nicht gesetzt] $offset = 0;

        // wie Du die Seitenanzahl hinbekommst weist Du ja schon
        // also haben wir noch eine Variable $pages
        $pages = $gesamt/$limit
        [wenn $gesamt%$limit != 0] $pages++;

        // so hattest Du es bisher,

        // anzeige der Zahlen mit Link
        [Schleife über alle Seiten]
        $newoffset = $limit * $i; //$i ist die Laufvariable
        [Link mit $newoffset als Übergabe]

        //jetzt wollen wir aber die Anzeige einschränken
        // wir brauchen eine Variable $seitenoffset, die ist Standardmässig 0
        // und ein $seitenlimit, welches wohl 10 sein wird

        // Anzeige
        [Schleife von $seitenoffset bis $seitenlimit]
        $newoffset = $limit * $i;

        [wenn $i gleich $seitenlimit ist übergib dem Link auch noch das neue Seitenoffset]
        $newseitenoffset = $seitenoffset + $seitenlimit;
        [link mit newoffset und newseitenoffset]

        Irgendwie merke ich, dass es so nicht so richtig vorwärts geht, bin heute nicht so gut drauf...

        guck Dir mal dass an
        vielleicht klannst Du ja anpassen
        http://codewalkers.com/seecode/92.html

        meine Variante sieht so aus:

          
        <?  
        // save values if not set up  
        if(empty($count)) $count=1;  
          
        // calculate pages  
        $pages = INTVAL($count/$limit);  
        if($count%$limit!=0) $pages++;  
          
        // set First  
        echo "  <a class=\"icon\" href=\"".$phpself."?offset=1\"><img src=\"images/pfeilanf.gif\" title=\"first\" alt=\"first\"></a> ";  
          
        // set prev  
        $new = $offset-$limit;  
        echo "<a class=\"icon\" href=\"".$phpself."?offset=".$new."\"><img src=\"images/pfeill.gif\" title=\"prev\" alt=\"prev\"></a> ";  
          
        // set numbers  
        $where = INTVAL(($offset/$limit)) + 1;  
        echo " [".$where." | ".$pages."] ";  
          
        // set next  
        if($offset <= ($count-$limit)) $new = $offset+$limit;  
        else $new = $offset;  
        echo "<a class=\"icon\" href=\"".$phpself."?offset=".$new."\"><img src=\"images/pfeilr.gif\" title=\"next\" alt=\"next\"></a> ";  
          
        // set Last  
        $new = INTVAL($count/$limit) * $limit;  
        if($new==$count) $new -= $limit;  
        $new += 1;  
        echo "<a class=\"icon\" href=\"".$phpself."?offset=".$new."\"><img src=\"images/pfeilende.gif\" title=\"last\" alt=\"last\"></a> ";  
          
        ?>  
        
        

        hoffe es hilft trotzdem

        ciao
        romy

        1. Hi Romy,

          toll dass du alles so flott gepostet hast.
          Also dass muss ich mir mal alles in Ruhe zu Gemüte führen (bin kein Programmierer und bastle nur ab und an an meiner Seite rum :-))
          An dem Feature-Artikel hätte ich auch Interesse.

          Vielen Dank für die Mühe

          Falk

          1. Hallo

            Hat leider alles nicht funktioniert :-(

            Falk

        2. Hi Falk

          $new += 1;
          echo "<a class="icon" href="".$phpself."?offset=".$new.""><img src="images/pfeilende.gif" title="last" alt="last"></a> ";

          die Var $phpself ist selbstkreiert und kommt von $_SERVER["PHP_SELF"]

          ciao
          romy