Seitennavigation

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

  • Seitennavigation

    Guten Morgen,

    ich arbeite zur Zeit an meiner Seitennavigation, die auch sehr gut funktioniert. Nun möchte ich nur eine Kleinigkeit hinzufügen, um diese Seitennavigation nicht endlos riesig zu machen. Das heisst, dass diese Seitennavigation momentan im folgendem Format dargestellt wird:

    Code:
    # Bei der ersten Seite:
    3 Seiten [ « ‹ [b]1[/b] 2 3 ]
    # Bei der zweiten Seite:
    3 Seiten [ « ‹ 1 [b]2[/b] 3 › » ]
    # Bei der letzten Seite:
    3 Seiten [ « ‹ 1 2 3 ]
    Und sollte ich nun eine Menge mehr Datensätze haben, so wird die Anzahl der Seiten praktischerweise auch größer. Nur wie stell ich das an, dass lediglich nur eine bestimmte Anzahl von Seiten angezeigt wird und es mehr sein sollten "..." angezeigt wird, um den Besucher damit zu zeigen, dass noch weitere Seiten vorhanden sind?

    Meine Navigation sieht wie folgt aus:

    PHP-Code:
        # navi
        
    for($sn=1;$sn<=$sc;$sn++) { 
        if (
    $site != "$n") { echo "<a href='?action=$action&site=$n'>$sn</a> "; } else { echo " <b>$sn</b> "; }
        }

    # "$sc" steht für die Anzahl aller Seiten bzw. ist hierbei die letzte Seite
    # "$n" steht für die momentane Seite 
    Ich hoffe ihr könnt mir behilflich sein.

  • #2
    such doch einfach mal im forum danach. 'blättern' oder 'seitenweise' sollte dich zum ziel bringen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      irgendwie so: (nicht getestet oder so)
      Code:
      $n = 5; // wieviele sollen gezeigt werden?
      $zeige = ($sc <= $n) ? $sc : $n; // zeige höchstens $n navigs
      # navi
      for($sn=1;$sn<=$zeige;$sn++) { 
          if ($site != "$n") { 
              echo "<a href='?action=$action&site=$n'>$sn</a> "; } else { echo " <b>$sn</b> "; 
          }
      }
      
      if($zeige < $sc){
          // hier ne navig für weitere seiten
      }
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        Original geschrieben von Abraxax
        such doch einfach mal im forum danach. 'blättern' oder 'seitenweise' sollte dich zum ziel bringen.
        Sorry, vergessen zu erwähnen, habe ich bereits gemacht und dieses Problem nicht wirklich gefunden.

        Kommentar


        • #5
          Man guck nur in einer guten php-software nach und man finde was sehr schönes zB. im phpbb-forum:

          PHP-Code:
          function generate_pagination($base_url$num_items$per_page$start_item$add_prevnext_text TRUE)
          {
              global 
          $lang;

              
          $total_pages ceil($num_items/$per_page);

              if ( 
          $total_pages == )
              {
                  return 
          '';
              }

              
          $on_page floor($start_item $per_page) + 1;

              
          $page_string '';
              if ( 
          $total_pages 10 )
              {
                  
          $init_page_max = ( $total_pages ) ? $total_pages;

                  for(
          $i 1$i $init_page_max 1$i++)
                  {
                      
          $page_string .= ( $i == $on_page ) ? '<b>' $i '</b>' '<a href="' append_sid($base_url "&amp;start=" . ( ( $i ) * $per_page ) ) . '">' $i '</a>';
                      if ( 
          $i <  $init_page_max )
                      {
                          
          $page_string .= ", ";
                      }
                  }

                  if ( 
          $total_pages )
                  {
                      if ( 
          $on_page 1  && $on_page $total_pages )
                      {
                          
          $page_string .= ( $on_page ) ? ' ... ' ', ';

                          
          $init_page_min = ( $on_page ) ? $on_page 5;
                          
          $init_page_max = ( $on_page $total_pages ) ? $on_page $total_pages 4;

                          for(
          $i $init_page_min 1$i $init_page_max 2$i++)
                          {
                              
          $page_string .= ($i == $on_page) ? '<b>' $i '</b>' '<a href="' append_sid($base_url "&amp;start=" . ( ( $i ) * $per_page ) ) . '">' $i '</a>';
                              if ( 
          $i <  $init_page_max )
                              {
                                  
          $page_string .= ', ';
                              }
                          }

                          
          $page_string .= ( $on_page $total_pages ) ? ' ... ' ', ';
                      }
                      else
                      {
                          
          $page_string .= ' ... ';
                      }

                      for(
          $i $total_pages 2$i $total_pages 1$i++)
                      {
                          
          $page_string .= ( $i == $on_page ) ? '<b>' $i '</b>'  '<a href="' append_sid($base_url "&amp;start=" . ( ( $i ) * $per_page ) ) . '">' $i '</a>';
                          if( 
          $i <  $total_pages )
                          {
                              
          $page_string .= ", ";
                          }
                      }
                  }
              }
              else
              {
                  for(
          $i 1$i $total_pages 1$i++)
                  {
                      
          $page_string .= ( $i == $on_page ) ? '<b>' $i '</b>' '<a href="' append_sid($base_url "&amp;start=" . ( ( $i ) * $per_page ) ) . '">' $i '</a>';
                      if ( 
          $i <  $total_pages )
                      {
                          
          $page_string .= ', ';
                      }
                  }
              }

              if ( 
          $add_prevnext_text )
              {
                  if ( 
          $on_page )
                  {
                      
          $page_string ' <a href="' append_sid($base_url "&amp;start=" . ( ( $on_page ) * $per_page ) ) . '">' $lang['Previous'] . '</a>&nbsp;&nbsp;' $page_string;
                  }

                  if ( 
          $on_page $total_pages )
                  {
                      
          $page_string .= '&nbsp;&nbsp;<a href="' append_sid($base_url "&amp;start=" . ( $on_page $per_page ) ) . '">' $lang['Next'] . '</a>';
                  }

              }

              
          $page_string $lang['Goto_page'] . ' ' $page_string;

              return 
          $page_string;

          Bei diesem Script werden bei mahr als 6 Seiten die Seitenzahlen so ausgegeben:
          Seite 1, 2, 3, ... ,65 , 66, 67

          Bei 6 Seiten sieht es so aus:
          Seite 1, 2, 3, 4, 5, 6

          Passe diese function einfach etwas an und es klappt. Hab ich genauso gemacht
          arrays sind klasse

          Kommentar


          • #6
            Hallo bin neu hier und möchte gern die Funktion von Maranello-550 einbauen,
            versuche schon seid 3 Tagen diese Funktion einzubauen aber wahrscheinlich bin ich zu doof dazu es klapt nicht

            Kannst mir jemand Hilfestellung geben bitte?

            Hier sollte es angpasst werden weil ich unendlich viele Seitenlinks angezeigt bekomme. Danke im vorraus.

            ---------------------------------------------------------------------------------------
            <?php
            session_start("logged");
            if($_SESSION["logged"]!=1){
            include "fehler.html";
            exit();
            }

            $conn = $_SERVER['DOCUMENT_ROOT'];
            include "php/dbconnect.inc.php";
            $status="in";
            $bgc = $bgcolor;
            $fontclr = $fontcolor;
            $color = @mysql_query("SELECT bgcolor,fontcolor,zcolor,fontcolora,hpurl,zeilen FROM $cc WHERE id=1");
            while ( $raw = mysql_fetch_array($color)) {

            $bgcolor = $raw["bgcolor"];
            $fontcolor = $raw["fontcolor"];
            $zcolor = $raw["zcolor"];
            $fontcolora = $raw["fontcolora"];
            $hpurl = $raw["hpurl"];
            $zeilen = $raw["zeilen"];
            }

            $Zeilen_pro_Seite = $zeilen;
            if (!isset($Anfangsposition)) {
            $Anfangsposition = 0;
            }

            session_unregister('text');
            session_unregister('suche');
            session_unregister('name');
            session_unregister('vorname');
            session_unregister('zname');
            session_unregister('age');
            session_unregister('geschlecht');
            session_unregister('wohnort');
            session_unregister('email');
            session_unregister('plz');
            session_unregister('handy');
            session_unregister('land');
            session_unregister('sternzeichen');
            session_unregister('raucher');
            session_unregister('haarfarbe');
            session_unregister('statur');
            session_unregister('familienstand');
            session_unregister('kinder');
            session_unregister('groesse');
            session_unregister('passwort');





            $ergebnis = mysql_query("SELECT vorname, name, age, wohnort, plz, zname, text,bildname,datum,chiffre,picsize,handy,land FROM users WHERE geschlecht='$geschlecht' AND suche='$suche' AND status='$status' ORDER BY id DESC Limit $Anfangsposition,$Zeilen_pro_Seite");

            $result=mysql_query($ergebnis);

            $result1=mysql_query("SELECT vorname, name, age, wohnort, plz, zname, text,bildname,datum,chiffre,picsize,handy,land FROM users WHERE geschlecht='$geschlecht' AND suche='$suche' AND status='$status' ORDER BY id DESC");

            $Anzahl=mysql_num_rows($result1);



            if (!$ergebnis) {
            echo "Liste hata !!! ".mysql_error();
            exit();
            }
            if(!$color) {
            echo "Data hatası !!!!";
            exit();
            }

            $num_rows = mysql_num_rows($ergebnis);
            if(!$num_rows) {
            include "keineintrag.html";
            exit();
            }


            $Anfangsposition++;

            // Blättermenü

            echo "<br>Sayfalar: ";

            if($Anzahl>$Zeilen_pro_Seite) {
            $Seiten=intval($Anzahl/$Zeilen_pro_Seite);
            if($Anzahl%$Zeilen_pro_Seite) {
            $seiten++;
            }
            }


            for ($i=1;$i<=$Seiten;$i++) {
            $fwd=($i-1)*$Zeilen_pro_Seite;
            echo "<a href=\"suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche\"><b>$i</b></a> ";
            }


            if($Anfangsposition == 1) {
            $page=1;
            }
            else
            {
            $page=($Anfangsposition+($Zeilen_pro_Seite-1))/$Zeilen_pro_Seite;
            }

            echo "<div align=center>Sayfa: $page </div>";

            echo ("<p><hr />");

            while ( $row = mysql_fetch_array($ergebnis)) {
            $bgc = ($bgc == $bgcolor) ? $zcolor : $bgcolor;
            $fontclr = ($fontclr == $fontcolor) ? $fontcolora : $fontcolor;

            $name = $row["name"];
            $vorname = $row["vorname"];
            $bildname = $row["bildname"];
            $age = $row["age"];
            $wohnort = $row["wohnort"];
            $plz = $row["plz"];
            $text = $row["text"];
            $datum = $row["datum"];
            $chiffre = $row["chiffre"];
            $email = $row["email"];
            $picsize = $row["picsize"];
            $handy = $row["handy"];
            $land = $row["land"];
            include("cat.html");
            }

            // Blättermenü


            echo "<br>Sayfalar: ";

            if($Anzahl>$Zeilen_pro_Seite) {
            $Seiten=intval($Anzahl/$Zeilen_pro_Seite);
            if($Anzahl%$Zeilen_pro_Seite) {
            $seiten++;
            }
            }

            for ($i=1;$i<=$Seiten;$i++) {
            $fwd=($i-1)*$Zeilen_pro_Seite;
            echo "<a href=\"suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche\"><b>$i</b></a> ";


            }



            echo "<font color= '$fontcolor' size=1><p><b><div align=center>Seite $page sonu</b><p>";


            ?>
            --------------------------------------------------------------------------------------------

            MfG Jogging

            Kommentar


            • #7
              erst lesen, dann posten!

              Kommentar


              • #8
                hab ich gelesen jedoch hift mir das wenig.

                Gibt es denn niemanden, der etwas Hilfestellung gibt?

                ich bin ein totaler Anfaenger und kann die befehle noch nicht genau einordnen.

                bitte um Hilfe

                Danke im voraus
                MfG Jogging

                Kommentar


                • #9
                  Original geschrieben von Joggig
                  hab ich gelesen jedoch hift mir das wenig.
                  schön das du es gelesen hast,

                  wo ist der:
                  - Code Umbruch
                  - die PHP Tags
                  - dein Ansatz, nur relevanter Code
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    tut mir leid marc75, verstehe nicht was du meinst.
                    Habe weiter oben mein Code gepostet und möchte gerne den Code von Maranello-550 darin einbauen damit nicht soviele Seiten angezeigt werden. Ich bin ganz neu mit der Materie und kenne die ausdrücke noch nicht. Also bitte wenns es nicht allzuviele Umstaende macht, bitte nur zeigen wie es geht und wo genau was stehen muss damit die seiten auch funktionieren. Im falle das es zuviel verlangt ist von mir, entschuldigen ich mich für die belaestigung mit meiner bitte um Hilfe.

                    MfG Jogging

                    Kommentar


                    • #11
                      der zweite Beitrag von mir in diesem Thema: http://www.php-resource.de/forum/sho...threadid=43138 gibt vielleicht auch Anregungen ...

                      Kommentar


                      • #12
                        OffTopic:
                        In einer Informatikarbeit hättest du 0 Punkte dafür bekommen

                        Kommentar


                        • #13
                          habe jetzt etwas eingebaut!

                          so sieht jetzt aus:
                          <<< 1 2 3 4 5 6 7 8 9 10 ... 20 >>>
                          Das funktioniert zwar aber die Links haben keine Suchfunktion suchen ins Leere.

                          Bei der suche

                          zb. Statt:

                          kontakte/suchecat.php?Anfangsposition=0&geschlecht=f&suche=m\"

                          siehts so aus:
                          kontakte/suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche\"

                          wiso wirds nicht erkannt?

                          Joggig


                          Was mache ich falsch?

                          Hier der Code



                          <?php
                          session_start("logged");
                          if($_SESSION["logged"]!=1){
                          include "fehler.html";
                          exit();
                          }

                          $conn = $_SERVER['DOCUMENT_ROOT'];
                          include "php/dbconnect.inc.php";
                          $status="in";
                          $bgc = $bgcolor;
                          $fontclr = $fontcolor;
                          $color = @mysql_query("SELECT bgcolor,fontcolor,zcolor,fontcolora,hpurl,zeilen FROM $cc WHERE id=1");
                          while ( $raw = mysql_fetch_array($color)) {

                          $bgcolor = $raw["bgcolor"];
                          $fontcolor = $raw["fontcolor"];
                          $zcolor = $raw["zcolor"];
                          $fontcolora = $raw["fontcolora"];
                          $hpurl = $raw["hpurl"];
                          $zeilen = $raw["zeilen"];
                          }

                          $Zeilen_pro_Seite = $zeilen;
                          if (!isset($Anfangsposition)) {
                          $Anfangsposition = 0;
                          }

                          session_unregister('text');
                          session_unregister('suche');
                          session_unregister('name');
                          session_unregister('vorname');
                          session_unregister('zname');
                          session_unregister('age');
                          session_unregister('geschlecht');
                          session_unregister('wohnort');
                          session_unregister('email');
                          session_unregister('plz');
                          session_unregister('handy');
                          session_unregister('land');
                          session_unregister('sternzeichen');
                          session_unregister('raucher');
                          session_unregister('haarfarbe');
                          session_unregister('statur');
                          session_unregister('familienstand');
                          session_unregister('kinder');
                          session_unregister('groesse');
                          session_unregister('passwort');





                          $ergebnis = mysql_query("SELECT suche, geschlecht, vorname, name, age, wohnort, plz, zname, text,bildname,datum,chiffre,picsize,handy,land FROM users WHERE geschlecht='$geschlecht' AND suche='$suche' AND status='$status' ORDER BY id DESC Limit $Anfangsposition,$Zeilen_pro_Seite");

                          $result=mysql_query($ergebnis);

                          $result1=mysql_query("SELECT suche, geschlecht, vorname, name, age, wohnort, plz, zname, text, bildname, datum, chiffre, picsize, handy, land FROM users WHERE geschlecht='$geschlecht' AND suche='$suche' AND status='$status' ORDER BY id DESC");

                          $Anzahl=mysql_num_rows($result1);



                          if (!$ergebnis) {
                          echo "Liste hata !!! ".mysql_error();
                          exit();
                          }
                          if(!$color) {
                          echo "Data hatası !!!!";
                          exit();
                          }

                          $num_rows = mysql_num_rows($ergebnis);
                          if(!$num_rows) {
                          include "keineintrag.html";
                          exit();
                          }


                          $Anfangsposition++;

                          // Blättermenü

                          if($Anzahl>$Zeilen_pro_Seite) {
                          $Seiten=intval($Anzahl/$Zeilen_pro_Seite);
                          if($Anzahl%$Zeilen_pro_Seite) {
                          $Seiten++;
                          }
                          }

                          for ($i=1;$i<=$Seiten;$i++) {
                          $fwd= $Zeilen_pro_Seite;

                          }


                          if($Anfangsposition == 1) {
                          $page=1;
                          }
                          else
                          {
                          $page=($Anfangsposition+($Zeilen_pro_Seite-1))/$Zeilen_pro_Seite;
                          }

                          echo "<div align=center>Seite: $page </div>";

                          echo ("<p><hr />");

                          while ( $row = mysql_fetch_array($ergebnis)) {
                          $bgc = ($bgc == $bgcolor) ? $zcolor : $bgcolor;
                          $fontclr = ($fontclr == $fontcolor) ? $fontcolora : $fontcolor;

                          $name = $row["name"];
                          $vorname = $row["vorname"];
                          $bildname = $row["bildname"];
                          $age = $row["age"];
                          $wohnort = $row["wohnort"];
                          $plz = $row["plz"];
                          $text = $row["text"];
                          $datum = $row["datum"];
                          $chiffre = $row["chiffre"];
                          $email = $row["email"];
                          $picsize = $row["picsize"];
                          $handy = $row["handy"];
                          $land = $row["land"];
                          $geschlecht = $row["geschlecht"];
                          $suche = $row["suche"];
                          include("cat.html");
                          }


                          $total = $Seiten ;

                          $Zeilen_pro_Seite = 10 ; // Anzahl der Eintraege pro Seite
                          $s = 10 ; // Anzahl der Links die angezeigt werden.
                          $Anfangsposition = (isset($Zeile_pro_Seite)) ? abs((int)$Seiten) : 1;


                          $Seiten = ceil($Anzahl/$Zeilen_pro_Seite) ;
                          $Anfangsposition = floor($s - $Seiten/1) ;
                          $Anfangsposition = $Anfangsposition <= 0 ? 1 : $Anfangsposition ;
                          $end = ($Anfangsposition + $i-0) ;
                          $end = $end >= $s ? $s : $end ;



                          // ausgabe der Links
                          if ($s > 1)
                          printf ('<a href=suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche">&lt;&lt;&lt;</a> ',$s-1);
                          // seiten.php anpassen
                          if ($Anfangsposition > 1)
                          printf ('<a href=suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche">%s</a>... ',1,1);
                          // seiten.php anpassen
                          for ($i = $Anfangsposition; $i <= $end ;$i++){
                          if($i==$seiten){
                          printf ("=%i= ",$i);
                          // kein Link da sind wir ja :-)
                          }else{
                          printf ('<a href=suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche">%s</a> ',$i,$i);
                          // seiten.php anpassen
                          }
                          }
                          if ($end < $total)
                          printf (' ...<a href=suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche">%s</a> ',$total,$total);
                          // seiten.php anpassen

                          if ($seiten < $Seiten)
                          printf('<a href=suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche">&gt;&gt;&gt;</a> ',$Seiten+1);
                          // seiten.php anpassen
                          // ende der ausgabe

                          ?>

                          Bei der suche

                          zb. Statt: kontakte/suchecat.php?Anfangsposition=0&geschlecht=f&suche=m\"

                          siehts so aus:
                          kontakte/suchecat.php?Anfangsposition=$fwd&geschlecht=$geschlecht&suche=$suche\"

                          wiso wirds nicht erkannt?

                          Joggig
                          Zuletzt geändert von Joggig; 17.02.2005, 07:46.

                          Kommentar


                          • #14
                            1. hast du Tobiaz Beitrag schon gelesen? LESEN
                            2. [PHP] - Tags verwenden
                            3. warum postest du den ganzen Code, statt nur den Teil wo die Links erzeugt werden?
                            4. Lese dir dort mal die Beispiele durch: Tip
                            mfg
                            marc75

                            <Platz für anderes>

                            Kommentar


                            • #15
                              das ist die Fehlermeldung:

                              <<<
                              Notice: Undefined variable: seiten in kontakte/suchecat.php on line 154
                              1
                              Notice: Undefined variable: seiten inkontakte/suchecat.php on line 154
                              2
                              Notice: Undefined variable: seiten in kontakte/suchecat.php on line 154
                              3
                              usw.


                              gruss Joggig

                              Kommentar

                              Lädt...
                              X