Die fast perfekte Blätterfunktion

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by azudus; 10-12-2005, 01:18.

    Comment


    • #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

      Comment


      • #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
        Last edited by azudus; 10-12-2005, 02:04.

        Comment


        • #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;";

          }
          .... 
          Last edited by azudus; 10-12-2005, 02:32.

          Comment


          • #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;";


            Comment


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

              Comment


              • #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

                Comment


                • #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

                  Comment


                  • #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

                    Comment


                    • #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

                      Comment


                      • #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;";

                        }
                        ?>

                        Comment


                        • #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" 
                          Last edited by EEBKiller; 11-12-2005, 11:48.

                          Comment


                          • #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
                            Last edited by bikerin111; 11-12-2005, 08:00.

                            Comment


                            • #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
                              Last edited by EEBKiller; 11-12-2005, 09:52.

                              Comment

                              Working...
                              X