Frage zu einem Seitenzahlen Script

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

  • Frage zu einem Seitenzahlen Script

    Hallo,

    ich habe hier ein fertiges Seitenzahlen Script.

    Das sieht so aus:

    Seite: [1] 2 3 4

    Soweit funktioniert auch alles. Meine Frage ist nun, wie bekomme ich es hin, dass das Script nur die ersten 10 Seitenzahlen anzeigt und dann zb nach der 10 Seitenzahl "..." macht.

    Ich habe nämlich viele Artikel, sprich es gibt sehr viele Seitenzahlen. Wenn der User die erste Seite aufruft soll er nur die ersten 10 Seitenzahlen sehen. Wenn er auf der 10. Seite ist, sollen die nächsten 10 Seitenzahlen gezeigt werden. Wie bekomme ich das am besten hin?

    PHP-Code:
    <?php
    //Abfrage auf welcher Seite man ist 

    //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 
    if($seite == ""){ 
       
    $seite 1;  
       }
       
       
    //Verbindung zu Datenbank aufbauen 

    include "db_login.php";

    //Eintraege pro Seite: Hier 15 pro Seite 
    $eintraege_pro_seite 5

    //Ausrechen welche Spalte man zuerst ausgeben muss: 

    $start $seite $eintraege_pro_seite $eintraege_pro_seite



    $result mysql_query("SELECT id FROM xxxxx WHERE page_id=".mysql_real_escape_string($id).""); 
    $menge mysql_num_rows($result); 

    //Errechnen wieviele Seiten es geben wird 
    $wieviel_seiten $menge $eintraege_pro_seite


    //Ausgabe der Seitenlinks: 
    echo "<div align=\"center\">"
    echo 
    "<b>Seite:</b> "


    //Ausgabe der Links zu den Seiten 
    for($a=0$a $wieviel_seiten$a++) 
       { 
       
    $b $a 1

       
    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben 
       
    if($seite == $b
          { 
          echo 
    "  <b>[$b]</b> "
          } 

       
    //Auf dieser Seite ist der User nicht, also einen Link ausgeben 
       
    else 
          { 
          
    $next_ok 1;
          echo 
    "  <a href=\"page.php?page=kat&seite=$b&id=$id\">$b</a> "
          } 


       } 
       
       if(
    $next_ok == && $seite != $a){
       
    // Rausfiden welche Seite als naechstes kommt
       
    $nex_seite $seite 1;
       echo 
    "<a href=\"page.php?page=kat&seite=$nex_seite&id=$id\"> > </a>";
       }
       
    echo 
    "</div><br>"


    //Tabelle Abfragen 
    //Tabelle hei&szlig;t hier einfach: Tabelle 
    $abfrage "SELECT * FROM xxxxx WHERE page_id=".mysql_real_escape_string($id)." ORDER BY `id` DESC LIMIT $start$eintraege_pro_seite"
    $ergebnis mysql_query($abfrage); 
    while(
    $row mysql_fetch_object($ergebnis)) 
        { 
        
    // Hier die Ausgabe der Eintraege
      
    $id_kat $id$id_art $row->id; include "tmp_einz_artikel.php";  
       } 


    //Jetzt kommt das "Inhaltsverzeichnis", 
    //sprich dort steht jetzt: Seite: 1 2 3 4 5 


    //Wieviele Eintraege gibt es ?berhaupt 

    //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten 
    //also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt 
    //Sonst funktioniert die Bl?tterfunktion nicht richtig, 
    //und hier kann nur 1 Feld abgefragt werden, also id 

    $result mysql_query("SELECT id FROM xxxxxx WHERE page_id=".mysql_real_escape_string($id).""); 
    $menge mysql_num_rows($result); 

    //Errechnen wieviele Seiten es geben wird 
    $wieviel_seiten $menge $eintraege_pro_seite

    //Ausgabe der Seitenlinks: 
    echo "<br><div align=\"center\">"
    echo 
    "<b>Seite:</b> "


    //Ausgabe der Links zu den Seiten 
    for($a=0$a $wieviel_seiten$a++) 
       { 
       
    $b $a 1

       
    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben 
       
    if($seite == $b
          { 
          echo 
    "  <b>[$b]</b> "
          } 

       
    //Aus dieser Seite ist der User nicht, also einen Link ausgeben 
       
    else 
          { 
          echo 
    "  <a href=\"page.php?page=kat&seite=$b&id=$id\">$b</a> "
          
    $next_ok 1;
          } 


       }
       if(
    $next_ok == 1  && $seite != $a){
       
    // Rausfiden welche Seite als naechstes kommt
       
    $nex_seite $seite 1;
       echo 
    "<a href=\"page.php?page=kat&seite=$nex_seite&id=$id\"> > </a>";
       }
    echo 
    "</div>"
    ?>

  • #2
    Zitat von mwde85 Beitrag anzeigen
    Wenn er auf der 10. Seite ist, sollen die nächsten 10 Seitenzahlen gezeigt werden. Wie bekomme ich das am besten hin?
    Ganz kleines bisschen selber nachdenken, und die Laufweite der Schleife, die die Links ausgibt, entsprechend (dynamisch) anpassen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wenn ich es wüsste würde ich ja nicht fragen :-). Ich bin Anfänger und habe keinen Plan wie ich es machen soll...

      Ich möchte es gerne so haben:

      Seite: [1] 2 3 4 5 6 7 8 9 10 ...

      Ab der Seite 10:

      Seite: 11 12 13 14 15 usw...

      Kommentar


      • #4
        Hallo,

        PHP-Code:
        ...
        $anfang max(min($seite 5$wieviel_seiten 10), 0);
        for (
        $a $anfang$a min($anfang 10$wieviel_seiten); $a++)
        ... 
        Ist etwas anders als du wolltest, aber mit Absicht, damit man von Seite 11 auch wieder zurück kommt.

        Gruß,

        Amica
        Zuletzt geändert von AmicaNoctis; 02.06.2010, 16:46.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Danke schonmal für das Beispiel,

          Ab Seite 10 geht es dann aber nicht mehr weiter. Da soll es ja dann weiter gehen mit 11, 12, 13, 14 usw... Dann sollen also die nächsten 10 weiteren Zahlen kommen wenn es noch mehr Seiten gibt. Geht das auch?

          Kommentar


          • #6
            Zitat von mwde85 Beitrag anzeigen
            geht das auch?
            LOL, aber klar. War noch ein Fehler drin. Jetzt ist er raus. Mal wieder ein typischer Fehler, wenn man es nicht selbst testen kann.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Ok das klappt schonmal gut. Ich habe jetzt zb 13 Seiten und und die letzte Seite von hinten ist die Seite 4. Wenn ich also jetzt auf Seite 4 zurück springe sehe ich die restlichen Zahlen aber nicht mehr :-). Also 3, 2, 1...

              So sieht das aus:

              Seite: [4] 5 6 7 8 9 10 11 12 13 >

              Das Symbol zeigt in diesem Fall die aktuelle Seite an...

              Die Zahl 5 in deinem Script ist ja für die Anzahl der Einträge, also das 5 Einträge pro Seite maximal angezeigt werden, richtig?

              Kommentar


              • #8
                Ich hab mich drauf verlassen, dass in $wieviel_seiten dann z. B. immer 13 drin steht, wenn es 13 Seiten sind. Das müsstest du aber selbst mal überprüfen.

                Zitat von mwde85 Beitrag anzeigen
                Die Zahl 5 in deinem Script ist ja für die Anzahl der Einträge, also das 5 Einträge pro Seite maximal angezeigt werden, richtig?
                Nein, das sorgt dafür, dass auch 5 Seiten vor der aktuellen angezeigt werden:

                [1] 2 3 4 5 6 7 8 9 10
                1 2 3 4 5 [6] 7 8 9 10
                3 4 5 6 7 [8] 9 10 11 12
                4 5 6 7 8 9 10 [11] 12 13
                Zuletzt geändert von AmicaNoctis; 02.06.2010, 17:08.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Ja $wieviel_seiten gibt aus wie viele Seiten es gibt. Das ist korrekt. Hmm woran kann das sonst noch liegen

                  Kommentar


                  • #10
                    Ahh ok dann habe ich einen Fehler gemacht... Jetzt funktioniert es super!

                    Vielen Dank für deine Hilfe!

                    Kommentar


                    • #11
                      Es gibt nur noch ein Problem das ich gerade festgestellt habe. Es gibt immer eine Seite (meistens die 2. Seite) wo er nur 2 Ergebnisse (statt 5) anzeigt. Bei den restlichen zeigt er dann wieder die vollen 5 Ergebnisse an. Komisch oder?

                      Kommentar


                      • #12
                        Da musst du aber langsam selbst sehen, woran das liegen kann. Eigentlich wollte ich dir ursprünglich nur ein Beispiel geben. Es sei denn, du willst mich engagieren…
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Ne ne das passt schon :-). Ich versuche es zu lösen.

                          Kommentar

                          Lädt...
                          X