Seitenzahlen stimmen nicht

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

  • Seitenzahlen stimmen nicht

    Hi ich hab ein Seitenblättern Script aus dem Code Schnipsel Forum genommen und auf meine wünsche angepasst.

    Jetzt kommt das Problem: wenn ich mir 5 Datensätze pro Seite anzeigen lasse, dann zeigt er mir 4 Seiten an, er müsste aber nur 2 anzeigen, weil ich 9 Datensätze habe.
    Wenn ich 10 Datensätze pro Seite einstelle, dann zeigt er mit zwei Seiten an, er müsste aber nur eine anzeigen.
    Kann mir einer sagen warum er mir bei 5 Datensätzen 1 Seite und bei 10 Datensätzen 2 Seiten zuviel anzeigt.

    PHP-Code:
    $select mysql_query("SELECT * FROM news_comm");
    $nr mysql_num_rows($select); #Gesamtanzahl $result muss ohne LIMIT ermittelt werden.
    $showmax 5;
    if(!isset(
    $start)) $start 0;
    $start intval($start);
    $shownsteps 3#Anzahl der Seitenzahlen links und rechts von der aktuellen Seitenzahl.

    $shows $start+1;
    $showe $start+$showmax;
    if(
    $showe $nr$showe $nr;

    if(
    $nr $showmax)
     {
          if(
    $start != 0) print "<a href=\"commc?nid=$nid&start=".($start-$showmax)."\"><< vorherige</a>&nbsp;&nbsp;";

          
    $begin $start-($shownsteps*$showmax);
          
    $end $start+(($shownsteps+1)*$showmax);
          
    $now $begin;
          
    $i = ($begin/$showmax)+1;
          if(
    $now-$showmax >= 0) print "<a href=\"commc?nid=$nid&start=0\">1</a> ... ";
          while(
    $now $end)
           {
            if((
    $now >= 0) && ($now <= $nr))
             {
              if(
    $now == $start) print "<b>$i</b> ";
              else print 
    "<a href=\"commc?nid=$nid&start=$now\">$i</a> ";
             }
            
    $now += $showmax;
            
    $i++;
           }
          
    $temp bcdiv($nr,$showmax,0)+1;
          if(
    $now+$showmax <= $nr) print "... <a href=\"commc?nid=$nid&start=".($temp*$showmax)."\">$temp</a> ";
          
    $t $start+$showmax;
          if(
    $t $nr) print "&nbsp;<a href=\"commc?nid=$nid&start=$t\">nächste >></a>";
         } 
    jeder mensch macht fehler

  • #2
    Re: Seitenzahlen stimmen nicht

    Original geschrieben von DER*PATE
    Jetzt kommt das Problem: wenn ich mir 5 Datensätze pro Seite anzeigen lasse, dann zeigt er mir 4 Seiten an, er müsste aber nur 2 anzeigen, weil ich 9 Datensätze habe.
    usw.

    btw: könntest Du diese Fehler"beschreibung" eventuell mal in verständliches Deutsch übersetzen?

    Kommentar


    • #3
      ich hab eingestellt das er mir 5 Datensätze pro Seite anzeigen soll, ich hab 9 Datensätze in der DB und das script müsste mir dann das anzeigen:
      Seite 1 2 nächste >>
      es zeigt aber
      1 2 3 4 nächste >>
      auf der 3 und 4 Seite befindet sich nicht

      hoffe das man es jetzt verstehen kann
      jeder mensch macht fehler

      Kommentar


      • #4
        Original geschrieben von DER*PATE
        ich hab eingestellt das er mir 5 Datensätze pro Seite anzeigen soll, ich hab 9 Datensätze in der DB und das script müsste mir dann das anzeigen:
        Seite 1 2 nächste >>
        tut es ja auch

        es zeigt aber
        1 2 3 4 nächste >>
        auf der 3 und 4 Seite befindet sich nicht

        hoffe das man es jetzt verstehen kann
        dann muss noch was dazwischen sein, was du vor uns versteckt

        Kommentar


        • #5
          Original geschrieben von DER*PATE
          ich hab eingestellt das er mir 5 Datensätze pro Seite anzeigen soll, ich hab 9 Datensätze in der DB und das script müsste mir dann das anzeigen:
          Seite 1 2 nächste >>
          Oben im Script gibst Du an, Du wolltest 5 Datensätze haben und gleichzeitig jeweils 3 Datensätze vor und nach der aktuellen Seite. Da fehlt mir echt der Film...

          Davor 1 2 3
          aktuell 4
          danach 5 6 7

          Kommentar


          • #6
            Original geschrieben von asp2php
            dann muss noch was dazwischen sein, was du vor uns versteckt
            ich verstecke nichts, das mach ich nur zu ostern

            jetzt hab ich es genauer gemacht, der hatte immer zuviel datensätze rausgeholt, jetzt hab ich eine bedingung hinzugefügt
            PHP-Code:
            <? 
            //Datensätz zum Umblättern auslesen
            $select = mysql_query("SELECT * FROM news_comm WHERE N_ID=$nid");
            $nr = mysql_num_rows($select); #Gesamtanzahl $result muss ohne LIMIT ermittelt werden.
            $showmax = 5;
            if(!isset($start)) $start = 0;
            $start = intval($start);
            $shownsteps = 5; #Anzahl der Seitenzahlen links und rechts von der aktuellen Seitenzahl.

            $shows = $start+1;
            $showe = $start+$showmax;
            if($showe > $nr) $showe = $nr;
            //if($shows == $showe) print "<p>zeige $shows</p>\n";
            //else print "<p>zeige $shows bis $showe</p>\n";

            print "<p>";
            if($nr > $showmax)
             {
                  if($start != 0) print "<a href=\"comm.php?nid=$nid&start=".($start-$showmax)."\"><< vorherige</a>&nbsp;&nbsp;";

                  $begin = $start-($shownsteps*$showmax);
                  $end = $start+(($shownsteps+1)*$showmax);
                  $now = $begin;
                  $i = ($begin/$showmax)+1;
                  if($now-$showmax >= 0) print "<a href=\"comm.php?nid=$nid&start=0\">[1]</a>&nbsp;";
                  while($now < $end)
                   {
                    if(($now >= 0) && ($now <= $nr))
                     {
                      if($now == $start) print "<b>[$i]</b> ";
                      else print "<a href=\"comm.php?nid=$nid&start=$now\">[$i]</a>&nbsp;";
                     }
                    $now += $showmax;
                    $i++;
                   } 
                  $temp = bcdiv($nr,$showmax,0)+1;
                  if($now+$showmax <= $nr) print "<a href=\"comm.php?nid=$nid&start=".($temp*$showmax)."\">[$temp]</a>&nbsp;";
                  $t = $start+$showmax;
                  if($t < $nr) print "&nbsp;<a href=\"comm.php?nid=$nid&start=$t\">nächste >></a>&nbsp;";
                 }
            jetzt hab ich 20 Datensätze in der DB und er müsste mir 4 Seiten geben er gibt aber:
            [1] [2] [3] [4] [5] nächste >>
            und auf der 5ten Seite befindet sich nichts

            Original geschrieben von meikel
            Oben im Script gibst Du an, Du wolltest 5 Datensätze haben und gleichzeitig jeweils 3 Datensätze vor und nach der aktuellen Seite. Da fehlt mir echt der Film...

            Davor 1 2 3
            aktuell 4
            danach 5 6 7
            das ist ein bestandteil des scripts ich brauch das nicht hab auch schon versucht es rauszunehmen, aber dann funktioniert es noch schlechter
            jeder mensch macht fehler

            Kommentar


            • #7
              Original geschrieben von DER*PATE
              jetzt hab ich 20 Datensätze in der DB und er müsste mir 4 Seiten geben er gibt aber:
              [1] [2] [3] [4] [5] nächste >>
              und auf der 5ten Seite befindet sich nichts
              1. warum schreibst Du $showmax = 5, wenn Du nur 4 sehen willst?
              2. wenn "$shownsteps = 5; #Anzahl der Seitenzahlen links und rechts von der aktuellen Seitenzahl." ist, zeigt dann das Script 5+1+5 oder 2+1+2 Links an?
              3. ich vermisse $_GET. Herrrscht bei Dir etwa register_globals = On?

              Kommentar


              • #8
                Original geschrieben von meikel
                1. warum schreibst Du $showmax = 5, wenn Du nur 4 sehen willst?
                2. wenn "$shownsteps = 5; #Anzahl der Seitenzahlen links und rechts von der aktuellen Seitenzahl." ist, zeigt dann das Script 5+1+5 oder 2+1+2 Links an?
                3. ich vermisse $_GET. Herrrscht bei Dir etwa register_globals = On?
                $showmax = 5 = anzahl der daten, wieviele er auf einer seite anzeigen soll. (5 kommentare)

                2. wenn "$shownsteps = 5; #Anzahl der Seitenzahlen links und rechts von der aktuellen Seitenzahl." ist, zeigt dann das Script 5+1+5 oder 2+1+2 Links an?
                ich weiß nicht würklich wozu das da ist, hab schon versucht das wegzunehmen, aber es geht dann garnicht
                jeder mensch macht fehler

                Kommentar


                • #9
                  Original geschrieben von DER*PATE
                  ... , aber es geht dann garnicht
                  Da mir die Quelle unbekannt ist, habe ich selber mal im Schnipsel Forum nachgesehen und stattdessen das gefunden:
                  http://php-resource.de/forum/showthr...threadid=34888

                  Vielleicht kommst Du damit besser zurecht.

                  Kommentar


                  • #10
                    Original geschrieben von meikel
                    Da mir die Quelle unbekannt ist, habe ich selber mal im Schnipsel Forum nachgesehen und stattdessen das gefunden:
                    http://php-resource.de/forum/showthr...threadid=34888

                    Vielleicht kommst Du damit besser zurecht.
                    ich wollte eigentlich kein neues script ausprobieren, ich wollte dieses verstehen

                    das ist das original: http://php-resource.de/forum/showthr...n&pagenumber=2
                    edit: der 3 beitrag auf der seite
                    jeder mensch macht fehler

                    Kommentar


                    • #11
                      Script von Juggler:
                      Original geschrieben von DER*PATE
                      ich wollte eigentlich kein neues script ausprobieren, ich wollte dieses verstehen
                      Das ist keine gute Vorlage.
                      Mir gefällt das schon mal gar nicht:
                      PHP-Code:
                      $nr mysql_num_rows($result); 
                      $showmax 15;

                      if($nr $showmax) { 
                      Das Script arbeitet erst dann, wenn in der DB mindestens 16 passende Beiträge vorhanden sind.

                      Entweder Du krallst Dir das [ CLASS ] blättern "1 ... 2 3 4 ... 100" (Wurzel) oder Du liest Dir das durch 17.10. Ich habe eine Tabelle mit n Einträgen und möchte auf jeder Seite m davon anzeigen und änderst das entsprechend Deiner Wünsche.

                      Mein Favorit wäre die Klasse von Meister Wurzel.

                      Kommentar

                      Lädt...
                      X