Webdesign in Siegen

[knowhow] Seitenaufteilung in PHP

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

[knowhow] Seitenaufteilung in PHP

Beitragvon Rene am 12.04.2005, 13:36

Liebe User, da mich immer sehr viele Leute fragen "du wie mach ich so ne Seitenaufteilung wie bei so Gästebüchern?" werde ich das hier mal ein wenig erläutern.

Von vorne herein ist gesagt: Es ist nicht schwer, aber man sollte auch etwas erfahrung in der Materie haben.
Ich werde hier erklären, wie man Datensätze die aus einer MYSQl Datenbank kommen aufteilt.
Vorraussetzung ist natührlich eine aktive Verbindung zur Datenbank.
Ihr müsst natührlich eure Spalten und Tabellennamen ändern.
Nun gut kommen wir zum praktischen Teil:

Code: Alles auswählen
   
$result =  mysql_query("SELECT * FROM db ORDER BY datum");
$gesamt =  mysql_num_rows($result);
$eintraege_pro_seite = 10;

Hier werden zuerst alle Datensätze ausgelesen und dann mit der funktion mysql_num_rows() gezählt. (Zeile 2)
Diesen Wert haben wir in $gesamt gespeichert.
!!!: Ändert in Zeile 1 Eure Spalten und Tabellennamen
In Zeile 3 wird festgelegt, wie viel Einträge pro Seite angezeigt werden.
Aktuell werden 10 Einträge angezeigt und dann wird auf die nächste Seite gewechselt.

Code: Alles auswählen
$num_sites = ceil($gesamt/$eintraege_pro_seite);
if(empty($_GET['site'])) {
    $site = 1;
} elseif($_GET['site'] <= 0 || $_GET['site'] > $num_sites) {
    $site = 1;
} else {
    $site = $_GET['site'];
}

$links = array();
if($site != 1) {
    $prev = $site-1;
    $links[] = '<a href="seite.php?site='.$prev.'">&laquo;</a>';
}
for($i=1;$i<=$num_sites;$i++) {
    if($i == $site) {
        $links[] = $i;
    } else {
        $links[] = '<a href="seite.php?site='.$i.'">'.$i.'</a>';
    }
}
if($site != $num_sites) {
    $next = $site+1;
    $links[] = '<a href="seite.php?site='.$next.'">&raquo;</a>';
}
$link_string = implode(" | ", $links);
$start = ($site-1)*$eintraege_pro_seite;
$start2 = $start+1;
$ende = $start+10;


Dieser Code Teil Teilt jetzt die Seiten auf und setzt die Links
Es gibt 3 Links die ihr nach belieben Anpassen könnt:
$links[] = '<a href="seite.php?site='.$i.'">'.$i.'</a>';
seite.php dürft ihr verändern in eure Seite..
!!!: Achtet darauf das die Variable $site immer stehen bleibt.

So zur Ausgabe der Seitenanzeige:
Code: Alles auswählen
echo ''.$link_string.'<br>Aktuelle Beiträge: '.$start2.' - '.$ende.'';

Alle drei Variablen wurden im oberen Code Teil schon festgelegt.
$link_string gibt die Seitenzahlen zurück und $start2 und $ende zeigt die Aktuellen Beiträge an.
Diese können auch weggemacht werden wenn man will.

So wir kommen nun zum Wichtigsten Teil des Scriptes:
Die Hauptausgabe.

Als erstes lesen wir wieder die Beiträge aus:

Code: Alles auswählen
$result2 = mysql_query("SELECT * FROM db ORDER BY datum DESC LIMIT ".$start.",".$eintraege_pro_seite);


Hier wird mit $start und $eintraege_pro_seite festgelegt welche Einträge ausgelesen werden sollen.
!!!: Ändert wieder die Spalten und Tabellen Namen

Nach dem ihr das habt, könnt ihr über eine while schleife eure Beiträge ausgeben:

Code: Alles auswählen
while ($row = mysql_fetch_array($result2)) {
echo ''.$row[name].'';
}


Zeile 2 ändert ihr mit eurer gewünschten Ausgabe.

Ich hoffe es hat alles geklappt.
Ich wünsche euch viel Spaß mit eurer neuen Ausgabe.
Wenn ihr Fragen habt postet Sie einfach.

LG René
Rene
Mitglied
 
Beiträge: 1188
Registriert: 28.02.2005, 20:10
Wohnort: nähe Ravensburg

Beitragvon Malte am 12.04.2005, 14:27

Ich bin mal ehrlich:
Das wusste ich nicht ^^
[x] <<< Nail here for new Monitor
Benutzeravatar
Malte
Mitglied
 
Beiträge: 365
Registriert: 01.04.2005, 10:27
Wohnort: Zuhause

Beitragvon Rene am 12.04.2005, 14:37

*überleg* deshalb hab ich das Tut ja geschrieben ;)
Wissen muss man auch erst mal lernen *ach bin ich gut *g**

@ Manu wenn du das für gut findest kannst du das ja auch in die Tutorial Section auf der Page machen.
Ich hoffe du Hast da Syntax Highlithing =)
Rene
Mitglied
 
Beiträge: 1188
Registriert: 28.02.2005, 20:10
Wohnort: nähe Ravensburg

Beitragvon Paddy am 12.04.2005, 14:45

Ja! Da bin ich auch dafür eine php Tutorialsection! Aber gehen dann mehr ins OOP! Alles andere gibt es schon zu viel von im Netz.

Paddy
Benutzeravatar
Paddy
Mitglied
 
Beiträge: 89
Registriert: 23.01.2005, 18:01
Wohnort: Mendig

Beitragvon Rene am 12.04.2005, 17:11

@ Paddy Ich hab noch nie gescheite Tuts über Anwendungen im I-Net gefunden wo einem etwas richtig erklärt wird (außer haha da schreiben Sie dann die einträge in die MYSQL Datenbank)
Aber so kleine Tricks und Anwendungen hab ich noch nicht viel gesehn.

Du kannst ja dann gern die OOP Tuts schreiben ;)

LG
Rene
Mitglied
 
Beiträge: 1188
Registriert: 28.02.2005, 20:10
Wohnort: nähe Ravensburg

Beitragvon Malte am 12.04.2005, 17:29

Ich würd auch welche machen...
[x] <<< Nail here for new Monitor
Benutzeravatar
Malte
Mitglied
 
Beiträge: 365
Registriert: 01.04.2005, 10:27
Wohnort: Zuhause


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: lex und 1 Gast