Blätterfunktion ausgabe etwas komplizierter!

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

  • Blätterfunktion ausgabe etwas komplizierter!

    Hi Leute!

    Ich habe folgendes Problem, und zwar geht es mal wieder um eine Blätterfunktion, keine Angst, das Forum habe ich durchsucht und bei google.de habe ich auch genügend Traffic verursacht.

    Die Blätterfunktion an sich ist ja kein Problem, es geht nur um die Ausgabe der Links.

    Also die Ausgabe soll wie folgt aussehen:

    Wenn man auf der ersten Seite ist:

    (1) 2 3 4 5 6 7 8 9 10 11

    Wenn man auf irgendeiner Seite zwischen drin ist:

    5 6 7 8 9 (10) 11 12 13 14 15

    Und wenn man auf der letzten Seite ist:

    39 40 41 52 43 44 45 46 47 48 49 (50)


    Das heißt also das immer 11 Links ausgegeben werden. Wenn man auf der ersten Seite ist, dann 10 Links neben der aktuellen Seite, wenn man irgendwo mitten drin ist, dann 5 Links links von der aktuellen Seite und 5 rechts davon. Und wenn man auf der letzten Seite ist, dann eben 10 Links rechts von der aktuellen Seite. Und irgendwie tue ich mich ziemlich schwer mit der Umsetzung, ich habe schon versucht das irgendwie mit Arrays zu machen, aber ich habe es nicht hinbekommen und gleich wieder verworfen.

    Also, wenn jemand für mich einen guten Tipp hat wie ich etwas näher an meine Lösung herankomme, bitte einfach mal Posten.

    Vielen Dank schon im voraus, wenn ich das Script fertig bekommen sollte, werde ich ein Tutorial verfassen.

    Gruß BSA

  • #2
    http://www.php-resource.de/forum/sho...threadid=34888
    anschauen und anpassen ^^
    Kissolino.com

    Kommentar


    • #3
      Sorry, aber um das auseinander zu nehmen bräuchte ich ja Tage, und irgendwie habe ich da auch nicht die Lösung für mein Problem gefunden.

      Kommentar


      • #4
        dann zeige ein bißchen Code, was du bisher schon versucht hast

        Kommentar


        • #5
          Die Ausgabe der Links haste schon? Also 1 - 2 - 3 - etc.

          Dann füge in deiner Schleife eine if-else bedingung ein, die deine Ausgabe steuert.



          PHP-Code:
          //so zum Beispiel:

          for (){

          if(
          $i 11){

          //ausgabe anfang

          }elseif(Bedingung){

          //ausgabe mitte

          }elseif(bedingung){

          //ausgabe ende

          }


          }

          //musste ein wenig probieren dann findest du die richtigen if-Bedingungen 
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #6
            Wenn es euch hilft wenn ich ein bisschen Code mit ranhänge, dann hier:

            PHP-Code:
            <?php
             
            function pager($dfield,$entrypp 15) {     

                 global 
            $page;
                 
            $page $_GET['page'];
                
                 function 
            limitSQL($entrypp 15) {

                     global 
            $page;         
                     
                    if (!
            $page || $page 1) {
                        
                        
            $page 1;
                        
                    } 
                    
                    
            $min = ($page 1) * $entrypp// Startwert ermitteln
                    
            $max = ($min 1)  + $entrypp// Der Endwert ist der Startwert - 1 + Eintraege

                    
            $out = array($min,$max);
                    
                    return 
            $out;  
                
                 }
                 
                 
            $pages ceil($dfield $entrypp);
                 
            $output "<table height='25' border='0' cellspacing='2' cellpadding='0'><tr>";
                 
            $output .= 'Du befindest dich auf Seite ' $page ' von ' $pages;
                 
            $output .= '<br /><br />';
                 if (
            $page 1) {
                    
            $output .= "<td class=''><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page-1)."\"><</a></td> ";
                } else {
                    
            $output .= "<td><</td> ";        
                }
                if(
            $page 20) {
                    
            $output .= "<td class='navFastPrevNext'><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page-20)."\"><<</a></td> ";
                } else {
                    
            $output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page-$page+1)."\"><<</a></td> ";
                }
                
                
                
            // Hier müsste dann in irgendeiner Weise die restliche Ausgabe mit hin.
                
                
                
            if($page $pages 20) {
                    
            $output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page+20)."\">>></a></td> ";
                } else {
                    
            $output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page+($pages-$page))."\">>></a></td> ";
                }        
                if (
            $page <= $pages-1) {
                    
            $output .= "<td><a href=\"".$_SERVER["PHP_SELF"]."?page=".($page+1).">></a></td> ";
                } else {
                    
            $output .= "<td>></td> ";
                }     
                
            $output .= "</tr></table>";     
                 
                
                
                 echo 
            $output;
                 
            }
            ?>
            Aufrufen kann man das ganze wie folgt:

            PHP-Code:
            $dfield 500;              // Gibt die Anzahl der Datensätze an (wird noch ersetzt
            pager($dfield,10);
            $sql limitSQL(10); 

            Kommentar

            Lädt...
            X