Die fast perfekte Blätterfunktion

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

  • Die fast perfekte Blätterfunktion

    Hallo@ ich habe eine sehr schöne und einfache
    Blätterfunfunktion gefunden :
    PHP-Code:
    ....
    $proseite=5;
    $result1=mysql_db_query($dbname,$query1,$conn) or die;
    $numbermysql_num_rows($result1);
    $seiten=$number/$proseite;
    $start=$page $proseite;
    echo 
    "$number Treffer";
    for(
    $i=0$i<=$seiten$i++) { 
    if (
    $i==$_GET['page']) { 
    $seite=$i+1;
    echo 
    "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
    } else {
    $seite=$i+1;
    echo 
    "<a href=\"index.php?open=suche&action=suchen
    &auswahl=
    $auswahl&eingabe=$eingabe&page=".$i."\">$seite</a>&nbsp;|&nbsp;";

    }
    .... 
    Diese sieht dann so aus wenn man sich z.B. auf der 6ten Seite befindet.

    1 | 2 | 3 | 4 | 5 | Seite 6 | 7 | 8 | 9 | 10 | 11 | 12 |
    dass einzige was mich stört sind die Enden, was nun noch
    genial wäre, wäre wenn bei der Seite 6 die Anzeige der Seiten 1,2,9,10,11,12 nicht sichtbar wären.

    Ich habe jetzt schon viel gesucht aber nicht gefunden,
    ich denke es ist nur 'ne kleinigkeit auf die ich nicht komme.

    Für Hilfe wäre ich dankbar

    Thanx

  • #2
    probier mal, sicher bin ich mir nicht (es is spät *fg)

    PHP-Code:
    ....
    $proseite=5;
    if(
    $_GET['page']){//falls schon mal aufgerufen
    $temp $proseite 2// wieviel soll weg? (in dem fall 5 * 2 = 10)
    $von $_GET['page'] - $temp// subtrahiere, vom stand, das was weg soll
    } else {$von 0;} // wenn noch nix aufgerufen wurde, kann auch nix weg
    $temp$proseite 4//wieviele seiten sollen verfügbar sein (die navi)
    $bis $von $temp//start + in dem falle 20 sachen die ausgegeben werden (bei 5 ausgaben pro seite macht das 4 seiten)
    $result1=mysql_db_query($dbname,$query1,$conn) or die;
    $numbermysql_num_rows($result1);
    $seiten=$number/$proseite;
    $start=$page $proseite;
    echo 
    "$number Treffer";
    for(
    $i=$von$i<=$bis$i++) { 
    if (
    $i==$_GET['page']) { 
    $seite=$i+1;
    echo 
    "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
    } else {
    $seite=$i+1;
    echo 
    "<a href=\"index.php?open=suche&action=suchen
    &auswahl=
    $auswahl&eingabe=$eingabe&page=".$i."\">$seite</a>&nbsp;|&nbsp;";

    }
    .... 
    wenn das funktionieren sollte (glaub ich @ uhrzeit nich mal *Fg ) dann kannst wieviele seiten angezeigt werden bei der variable $temp einstellen
    Zuletzt geändert von azudus; 10.12.2005, 02:18.

    Kommentar


    • #3
      Ja, ich weis schon sehr spät *zzzzzz*
      Ich erhalte z.B. folgendes Ergebnis
      -2 | -1 | 0 | 1 | Seite 2 | 3 | 4 | 5 | 6 |
      und es gibt kein Ende der Seitenanzahl :-)
      66 | 67 | 68 | 69 | Seite 70 | 71 | 72 | 73 | 74 |
      Thanx

      Kommentar


      • #4
        looool
        doch noch wach? frechheit *fg

        wird beim ersten aufrufen $_GET['page '] übergeben??



        beim fehlendem ende (is auch spät *lol)

        lösch mal (aber merken wo´s war *fg)
        PHP-Code:
        $temp$proseite 4
        und unter
        PHP-Code:
        $numbermysql_num_rows($result1); 
        füge mal bitte das:
        PHP-Code:
        $temp$proseite 4;
        if (
        $temp $number)
        {
        $temp $number-1;

        ein...

        und über: (da wo´s vorher stand!) *loool


        PHP-Code:
        $temp$proseite 4
        tipple ma bitte:
        PHP-Code:
        if($temp<=o)
        {
        $von=0;

        ma gucken :S
        Zuletzt geändert von azudus; 10.12.2005, 03:04.

        Kommentar


        • #5
          allso klartext:

          PHP-Code:
          ....
          $proseite=5;
          if(
          $_GET['page']){//falls schon mal aufgerufen
          $temp $proseite 2// wieviel soll weg? (in dem fall 5 * 2 = 10)
          $von $_GET['page'] - $temp// subtrahiere, vom stand, das was weg soll
          } else {$von 0;} // wenn noch nix aufgerufen wurde, kann auch nix weg
          if($von<=0)//da stand vorher nen "o" o.O (is halt spät *ggg)
          {
          $von=0;
          }
          $result1=mysql_db_query($dbname,$query1,$conn) or die;
          $numbermysql_num_rows($result1);
          $temp$proseite 4//wieviele seiten sollen verfügbar sein (die navi)
          if ($temp $number)
          {
          $temp $number-1;
          }
          $bis $von $temp//start + in dem falle 20 sachen die ausgegeben werden (bei 5 ausgaben pro seite macht das 4 seiten)
          $seiten=$number/$proseite;
          $start=$page $proseite;
          echo 
          "$number Treffer";
          for(
          $i=$von$i<=$bis$i++) { 
          if (
          $i==$_GET['page']) { 
          $seite=$i+1;
          echo 
          "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
          } else {
          $seite=$i+1;
          echo 
          "<a href=\"index.php?open=suche&action=suchen
          &auswahl=
          $auswahl&eingabe=$eingabe&page=".$i."\">$seite</a>&nbsp;|&nbsp;";

          }
          .... 
          Zuletzt geändert von azudus; 10.12.2005, 03:32.

          Kommentar


          • #6
            Mhhhh nun wird nur noch die
            Seite 1 |
            angezeigt

            Zur Frage
            wird beim ersten aufrufen $_GET['page '] übergeben??
            Ja wird es !

            Der Code ;
            PHP-Code:
            $proseite=5

            if($_GET['page']){
            $temp $proseite 2;
            $von $_GET['page'] - $temp;
            } else {
            $von 0;}
            if(
            $temp<=o)
            {
            $von=0;
            }
            $bis $von $temp;
            $result1=mysql_db_query($dbname,$query1,$conn) or die;
            $numbermysql_num_rows($result1);

            $temp$proseite 4;
            if (
            $temp $number)
            {
            $temp $number-1;
            }
            $seiten=$number/$proseite;
            $start=$page $proseite;
            echo 
            "$number Treffer";
            for(
            $i=$von$i<=$bis$i++) {
            if (
            $i==$_GET['page']) {
            $seite=$i+1;
            echo 
            "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
            } else {
            $seite=$i+1;
            echo 
            "<a href=\"index.php?open=suche&action=suchen&
            auswahl=
            $auswahl&eingabe=$eingabe&page=".$i."\">$seite</a>&nbsp;|&nbsp;";


            Kommentar


            • #7
              probier mal bitte das posting vorher
              also vor deinem letzem

              Kommentar


              • #8
                Ich denke schon sehr spät kannst mir auch morgen
                weiterhelfen wenn Du magst.

                Fehler :

                1. Aufruf -> Seite 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
                Wenn ich auf 2 klicke -> -2 | -1 | 0 | 1 | Seite 2 | 3 | 4 | 5 | 6 |
                Ab der Seite 4 -> 0 | 1 | 2 | 3 | Seite 4 | 5 | 6 | 7 | 8 |
                Und dann nochunentlich -> 32 | 33 | 34 | 35 | Seite 36 | 37 | 38 | 39 | 40 |

                Gruss

                Kommentar


                • #9
                  looool
                  nö, jetzt bin ich bockig ^^ *loool
                  probier mal:

                  PHP-Code:
                  ....
                  $proseite=5;
                  if(
                  $_GET['page']){//falls schon mal aufgerufen
                  $temp $proseite 2// wieviel soll weg? (in dem fall 5 * 2 = 10)
                  $von $_GET['page'] - $temp// subtrahiere, vom stand, das was weg soll
                  } else {$von 0;} // wenn noch nix aufgerufen wurde, kann auch nix weg
                  if($von<=0)//da stand vorher nen "o" o.O (is halt spät *ggg)
                  {
                  $von=0;
                  }
                  $result1=mysql_db_query($dbname,$query1,$conn) or die;
                  $numbermysql_num_rows($result1);
                  $pruef=$proseite 4;
                  $temp$von $pruef//wieviele seiten sollen verfügbar sein (die navi)
                  if ($temp $number)
                  {
                  $temp $number-1;
                  }
                  $bis $von $temp//start + in dem falle 20 sachen die ausgegeben werden (bei 5 ausgaben pro seite macht das 4 seiten)
                  $seiten=$number/$proseite;
                  $start=$page $proseite;
                  echo 
                  "$number Treffer";
                  for(
                  $i=$von$i<=$bis$i++) { 
                  if (
                  $i==$_GET['page']) { 
                  $seite=$i+1;
                  echo 
                  "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
                  } else {
                  $seite=$i+1;
                  echo 
                  "<a href=\"index.php?open=suche&action=suchen
                  &auswahl=
                  $auswahl&eingabe=$eingabe&page=".$i."\">$seite</a>&nbsp;|&nbsp;";

                  }
                  .... 

                  ... das geht ja nu ma gar nich

                  Kommentar


                  • #10
                    geh jetzt trotzdem ins bett

                    wenn sich bis morgen keiner finden sollte, der den wirrwar löst, bastel ich dir das *Fg, dann seh ich auch wieder klar *rofl ^^

                    wünsch dir was

                    Kommentar


                    • #11
                      Na dann mal jute Nacht und danke im voraus.

                      Beim Aufruf -> Seite 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
                      Ab Seite 6 -> 2 | 3 | 4 | 5 | Seite 6 | 7 | 8 | 9 | 10 | 11 |
                      und Seite 21 -> 17 | 18 | 19 | 20 | Seite 21 | 22 | 23 | 24 |
                      25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38

                      wünsch Dir was - Thanx

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php
                        $proseite
                        =5;
                        if(
                        $_GET['page']) { $temp $proseite 3$von $_GET['page'] - $temp; } 
                        else {
                        $von 0;} if($von<=0) { $von=0; }
                        $result1=mysql_db_query($dbname,$query1,$conn) or die;
                        $numbermysql_num_rows($result1);
                        $pruef=$proseite 4$temp$von $pruef$noch $number $temp;
                        if (
                        $noch $number) { $noch $number $von; }
                        $bis $von $noch$seiten=$number/$proseite$start=$page $proseite;
                        echo 
                        "$number Treffer";
                        for(
                        $i=$von$i<=$bis$i++) { 
                        if (
                        $i==$_GET['page']) { 
                        $seite=$i+1;
                        echo 
                        "Seite&nbsp;".$seite."&nbsp;|&nbsp;";
                        } else {
                        $seite=$i+1;
                        echo 
                        "<a href=\"index.php?open=suche&action=suchen
                        &auswahl=
                        $auswahl&eingabe=$eingabe&page=".$i."\">$seite</a>&nbsp;|&nbsp;";

                        }
                        ?>

                        Kommentar


                        • #13
                          PHP-Code:
                          // Makes the >> (x Pages) (1) [2] [3] [4] [5] [»] << Page Indicator
                              
                          function buildPages($total$per_page$shown_pages$current_page$LINK$LINK_ADD "") {
                              
                                  if (
                          $shown_pages 3) {
                                      
                          $shown_pages 3;
                                  } elseif (
                          $shown_pages == 0) {
                                      
                          $shown_pages ++;
                                  }
                                  
                          $LINK str_replace("&amp;p=".$current_page""$LINK);
                                  if (
                          $current_page === "") {
                                      
                          $current_page 1;
                                  }
                                  
                                  
                          $page_num = (int)($total $per_page);
                                  
                          $page_num += ($total $per_page) ? 0;
                                  
                          $offset $current_page - ($shown_pages 1) / 2;
                                  if  (
                          $offset > ($page_num $shown_pages 1)) {
                                      
                          $offset $page_num $shown_pages 1;
                                  }
                                  if (
                          $offset 1) {
                                      
                          $offset 1;
                                  }
                                  
                          $output "\r\n(<b>$page_num</b> ".(($page_num 1) ? "Seiten" "Seite").")";
                                  
                          $output .= ($offset 1) ? "\r\n[<a ".$LINK_ADD." href=\"".$LINK."&amp;p=1\" title=\"Erste\">&laquo;</a>]" "";
                                  
                          $offset_end = ($shown_pages $page_num) ? $offset $shown_pages $page_num 1;
                                  for (
                          $i $offset$i $offset_end$i++ ) {
                                       
                          $output .= ($i != $current_page) ?
                                                     
                          "\r\n[<a ".$LINK_ADD." href=\"".$LINK."&amp;p=$i\">$i</a>]" :
                                                     
                          "\r\n<b>($i)</b>";
                                  }
                                  
                          $output .= ($offset < ($page_num $shown_pages 1)) ?
                                              
                          "\r\n[<a ".$LINK_ADD." href=\"".$LINK."&amp;p=$page_num\" title=\"Letzte\">&raquo;</a>]" :
                                              
                          "";
                                  return 
                          "<div align=\"center\">$output</div><br /><br />\r\n";
                              }

                          // Diese Funktion errechnet sich aus der Gesamt-Anzahl der Element
                          // (in einer DB) und der Anzahl, die dann pro Seite angezeigt werden
                          // soll die jeweiligen Links

                          // $total : Elemente gesamt
                          // $per_page : Elemente pro Seite  
                          // $shown_pages : Anzahl der Links (Ungerade Zahl größer 3) 
                          // $current_page : Meist $_GET['p']
                          // $LINK : an was "&p=2" Gehängt werden soll ( zB index.php?go=Archiv )
                          // $LINK_ADD : Dort kann man speziefische Sachen in die <a> Elemente geben,
                          //                 zB CSS-Klassen oder target="_blank" 
                          Zuletzt geändert von EEBKiller; 11.12.2005, 12:48.

                          Kommentar


                          • #14
                            Guten Morgen, danke für Hilfe von Euch.


                            azudus@
                            1ste Seite :
                            Seite 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
                            7te Seite :
                            1 | 2 | 3 | 4 | 5 | 6 | Seite 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
                            13te Seite :
                            7 | 8 | 9 | 10 | 11 | 12 | Seite 13 | 14 | 15 |

                            EEBKiller@
                            ich bin leider in den logischen Operationen nicht ganz
                            so bewandert ( Frau halt :-) ) wie kann ich das nun aufrufen
                            bzw. einbinden wenn die aus zu führende URL folgende ist.

                            URL :
                            index.php?open=suche&action=suchen
                            &auswahl=$auswahl&eingabe=$eingabe

                            SQL :
                            SELECT * FROM user WHERE ".$auswahl." LIKE '%".$eingabe."%' AND aktiv='1'
                            $result1=mysql_db_query($dbname,$query1,$conn) or die;
                            $number= mysql_num_rows($result1);

                            Anzahl der zu zeigenden Seiten :
                            $proseite
                            Gruss und danke
                            Zuletzt geändert von bikerin111; 11.12.2005, 09:00.

                            Kommentar


                            • #15
                              PHP-Code:
                              $p = (!empty($_GET['p']) ? $_GET['p'] : 1;
                              print 
                              buildPages($number$proseite5$p
                              "index.php?open=suche&action=suchen&auswahl=".$auswahl."&eingabe=".$eingabe); 
                              Du weisst aber hoffentlich, dass du irgendwo noch nen SQL-Query brauchst, der irgendwas mit "LIMIT" drin hat
                              Zuletzt geändert von EEBKiller; 11.12.2005, 10:52.

                              Kommentar

                              Lädt...
                              X