3x bewertet

Seitenfunktion

von Delite  |  20.02.2007 um 20:24 h
PHP Anwendungen
Typ: PHP Anwendungen
Stufe:Mittel
Hihi ja, die Frage wurde schon oft gestellt. Man muss für jede neue Seite keine neue Seite erstellen da gibt es einen ganz einfachen "Trick":


<?php
    
include("db.php"); 
    
$proseite 10// Wieviele Einträge pro Seite?
    
$tabelle "benutzer"// Deine MySQL Tabelle

    
if(!isset($_REQUEST["seite"])) { // Wenn die Seite leer ist, ist
Seite 0
        $seite 
0;
    } else {
        
$seite $_REQUEST["seite"];
    }
        
    
$abfrage "SELECT * FROM ".$tabelle." LIMIT ".$seite.",".$proseite;
// Limit fängt bei seite an und zeigt soviele Einträge wie bei
proseite
    $ergebnis 
mysql_query($abfrage); 
    while(
$row mysql_fetch_object($ergebnis)) 
    { 
        echo 
$row->id." | Name: ".$row->name." - ";
    } 

    
$count 0;
    
$abfrage "SELECT id FROM ".$tabelle
    
$ergebnis mysql_query($abfrage); 
    while(
$row mysql_fetch_object($ergebnis)) 
    { 
        if(
$count%$proseite == 0) {
            
$aktuelleseite $count/$proseite+1;
            if(
$count == $seite) {
                echo 
$aktuelleseite." ";
            } else {
                echo 
"<a href=?seite=$count>".$aktuelleseite."</a> ";
            }
        }
        
$count++;
    } 
?>



Die Kommentare (Die // Teile) erklären einiges. Den Rest erkläre ich :)

Die 1. Abfrage ist das ganz normale Ergebnis, dass ihr umbauen könnt wie ihr wollt.

Bei der 2. Abfrage wird es bereits anspruchsvoller. Also es wird halt die Tabelle abgefragt.

In der Schleife wird dann gefragt ob $count%seite = 0 ist d.h. ob der Rest von $count geteilt durch $proseite 0 ist. Wenn dies der Fall ist soll eine Seitenzahl gezeigt werden. $count ist übrigens am Anfang null und wird pro Durchlauf um einen erhöht. d.h. der 1. Eintrag hat $count = 0 der 2. $count = 1 usw. Ist also der Rest 0 ist die $aktuelleseite $count/$proseite.

Da der 1. $count = 0 wäre und das ja die 1. Seite wäre muss man immer 1 addieren! Sonst würden die Seiten bei 0 anfangen.

Jetzt wird nochmal geprüft ob die $aktuelleseite die $seite ist, die gerade geöffnet ist, damit man weiss wo man gerade ist, wird diese Seite nicht verlinkt. Ansonsten wird einfach geblättert.

Die seite wird mit einer GET-Variable übergeben. Also eine Variable, die in der URL steht.

Ist vielleicht nicht so einfach aber wenn ihr noch Fragen habt, postet einfach ;)



5 Kommentare




ich hab eine frage (ich bin noch php-newbie) , der Script funktioniert wenn ich die Seite extra aufrufe aber wenn ich sie include funktioniert sie irgendwie nicht Smilie
am 12.08.2007 um 12:21 Uhr


cheasy

tooolles tut, hat mir sehr geholfen ^.^
könntest du pls auch erklären, wie man da s machen kann, dass da nur "Vorige" und "Nächste" steht? Wär lieb Smilie
am 25.08.2007 um 14:21 Uhr


Da klappt gar nichts -_-
am 21.11.2007 um 19:40 Uhr


Wenn ich es include erscheint immer nur:

6 - 5 - 4 - 7 - 8 - 9 - 10 - 11 - 14 - 21 - 22 - 20 - 1 2

Auf 1 erscheinen immer die gleichen icons wie auf 2. Bei proseite hatte ich auch 12 angegeben aber es kommen trotzdem immer 13 icons... könnte mir vielleicht jemand helfen? Wäre lieb von euch Smilie
am 08.03.2008 um 10:33 Uhr


wo muss das rein? in den head-bereich? oder auf die site als inhalt?
am 14.03.2009 um 21:31 Uhr