tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
629
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Hey,

    ich habe das Blätter-funktions-tutorial vor langer Zeit mal gelernt, und ein bisschen verfolständigt, z.b. mit < zurück und vor > links und das der User auswählen kann, wie viele Einträge er pro Seite haben will und so weiter.


    Allerdings habe ich ein Problem bei dem "vor >" Link.
    Man sollte ja nicht noch weiter vorblättern können, wenn man schon auf der letzten Seite ist, wär ja sinnlos.

    Nur, wie finde ich die letzte Seite heraus?

    Hier ist der oberste teil meines php-scriptes:
    PHP-Code:
    <?php
        
    //jetzt lesen wir alle einträge aus.
        
    $Result             mysql_query("SELECT * FROM gaestebuch ORDER BY id DESC");
        
    $eintrage         mysql_num_rows($Result); //hier zählen wir zuerst alle einträge
        
        //jetzt prüfen wir, ob der user eine eigene anzahl pro seite angegeben hat
        
    if ($_GET['e'] == ""//wenn nicht, dann ist standart 15
            
    {
                
    $maxproseite        15;
            }
        else
            {
                
    //wenn doch, wird der wert hier aus der url geholt
                
    $maxproseite        $_GET['e'];
            }
        
        
        
    $i 0;
        
        
    $seiten                $eintrage/$maxproseite//hier errechnen wir alle seiten
        
        /* Alternativ ginge auch folgende schreibweise, die jedoch viel länger ist
             $Query  = "SELECT * FROM gaestebuch ORDER BY id DESC;
             $Result = mysql_query($Query);
        */
        
        
    if (mysql_num_rows($Result) == 0//mysql_num_rows($Result) zählt alle einträge in der db
            
    //wenn die anzahl der einträge 0 ist, dann gibts ne meldung
                
    echo "Es sind keine Einträge im Gästebuch";
            }
        else 
    //wenn nicht, dann halt der rest
            
    {
                
            
    //hier die seiten ausgeben
            
    echo "<div class=\"seite\">";
                echo 
    "Einträge pro Seite: ";
                    echo 
    "<a href=\"?index=i&e=5\">5</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=10\">10</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=20\">20</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=30\">30</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=40\">40</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=50\">50</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=60\">60</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=70\">70</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=80\">80</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=100\">100</a> &middot; ";
                    echo 
    "<a href=\"?index=i&e=1000000000000000000\">Alle</a>";
                echo 
    "<br />";
                echo 
    "Seite ";
                    for(
    $i 1$i 1$seiten$i++)
                        {              
    //Ausgabe der Linkliste
                            
    if ($i == $_GET['page'])
                                {
                                        
    //wenn die aktuelle seite mit der aus der url übereinstimmt, wird diese unterstrichen
                                
    echo "<a href=\"?gb=index&page=".$i."&e=$maxproseite\"><u>".$i."</u></a> &middot; "
                            }
                        else
                            {
                                echo 
    "<a href=\"?gb=index&page=".$i."&e=$maxproseite\">".$i."</a> &middot; "
                            }
                    }
        echo 
    "</div>";
                
            echo 
    "<hr />";
        
        if (!isset(
    $_GET['page']))
            {
                
    //wenn keine seitenzahl gegeben ist, dann hier die einträge mit limit ($maxproseite) auslesen
                //limit beschränkt die einträge
                
    $Query "SELECT * FROM gaestebuch ORDER BY id DESC LIMIT 0, ".$maxproseite.";";
            }
        else
            {
                
    //wenn die variable $p ($_GET['page']) aus der url gelesen wurde, dann hier die abfrage
                //mit den "$abeintrag" errechnen, und die einträge von $abeintrag bis $maxproseite auslesen
                
    $p                 $_GET['page'];
                
    $abeintrag $p $maxproseite $maxproseite
                
    $Query "SELECT * FROM gaestebuch ORDER BY id DESC LIMIT ".$abeintrag.", ".$maxproseite.";";
            }
        
    $Result2 mysql_query($Query);

    und hier der teil für die Blätterfunktion
    PHP-Code:
                    //die aktuelle seite wird mit GET ermittelt, und es wird einfach 1 seite abgezogen
                    
    $last        $_GET['page']-1;
                    if (
    $_GET['page'] == 1//wenn die aktuelle seite 1 ist, dann kann man nicht weiter zurückblättern
                        
    {
                            echo 
    "<< letze &middot; ";
                        }
                    else
                        {
                            
    //andernfalls den link ausgeben
                            
    echo "<a href=\"?gb=index&page=$last&e=$maxproseite\"><< letze</a> &middot; ";
                        }
                    
                    
                    for(
    $i 1$i 1$seiten$i++) //for ist auch eine schleife
                        
    {             
                             
    //Ausgabe der Linkliste
                            
    if ($i == $_GET['page'])
                                {
                                    
    //wenn die aktuelle seite mit der aus der url übereinstimmt, wird diese unterstrichen
                                
    echo "<a href=\"?gb=index&page=".$i."&e=$maxproseite\"><u>".$i."</u></a> &middot; "
                            }
                        else
                            {
                                echo 
    "<a href=\"?gb=index&page=".$i."&e=$maxproseite\">".$i."</a> &middot; "
                            }
                            
                    } 
    //for beenden
                    
                    //die aktuelle seite wird mit GET ermittelt, und es wird einfach 1 seite draufgerechnet
                    
    $next        $_GET['page']+1;
                    if (
    $_GET['page'] == $seiten//wenn die aktuelle seite die letzte ist, dann kann man nicht weiter vorblättern
                        
    {
                            echo 
    " nächste >>";
                        }
                    else
                        {
                            
    //andernfalls den link ausgeben
                            
    echo " <a href=\"?gb=index&page=$next&e=$maxproseite\">nächste >></a>";
                        } 

    Wer kann mir helfen?
    David
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    In deinem Fall steckt diese Information in der $seiten-Variable.
     
    Markus Wulftange

  3. #3
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    Das dachte ich mir schon...

    Aber wie bekomme ich die letzte Seite da herausgezogen?
     

  4. #4
    Ramon Ramon ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Ort
    Berlin
    Beiträge
    74
    Ganz einfach: Die Menge der Einträge geteilt durch die Einträge, die du pro Seite anzeigen kannst, ergibt als Ergebnis die Anzahl der Seiten, die maximal gefüllt werden können. Einfachste Mathematik

    45 Einträge - 15 willst du pro Seite anzeigen lassen:

    45/15 = 3 Seiten

    also ist deine letzte Seite die Seite 3
     

  5. #5
    Registriert seit
    Oct 2005
    Ort
    Nottuln
    Beiträge
    1.282
    OH MAN, bin ich doof...

    Wie einfach

    Danke euch
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 05.03.07, 17:09
  2. Letzte besuchte Seite speichern
    Von Naisetsu im Forum PHP
    Antworten: 2
    Letzter Beitrag: 28.06.05, 12:06
  3. 1. und letzte seite in indesign cs v3.0 verbinden
    Von Sarah im Forum Sonstige Grafik-Programme
    Antworten: 2
    Letzter Beitrag: 24.11.04, 08:45
  4. Antworten: 0
    Letzter Beitrag: 07.10.04, 12:02
  5. Bild-Zeitung 23.7. - letzte Seite
    Von Daniel Mannheimer im Forum Smalltalk
    Antworten: 14
    Letzter Beitrag: 06.08.03, 22:56