cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
eBooks
Hochgeladene Bilder
Letzte Änderungen

Lexikon

Bücher
Themengebiete

Tutorials


Statistik
Mitglieder gesamt: 68163
Mitglieder online: 0
Gäste online: 0
mehr...

Anzeige
Tutorials » Tutorials: PHP/MySQL » Tutorial: Blätterfunktion

Tutorial: Blätterfunktion

Blätterfunktion

Oft ist es nötig eine Datenbank Abfrage auf mehrer Seiten auf zu teilen z.B. bei einem Gästebuch oder einem Newsscript. Wie dies funktioniert, werde ich euch heute zeigen.


Am Anfang des Scriptes stellen wir eine Verbindung zu Datenbank her. Dann wird abgefragt, ob die Variable $page mit GET übergeben worden ist, ist dies nicht der Fall, dann ist man automatisch auf Seite 1. Außerdem wird Berechnet, ab wann die Daten ausgegeben werden sollen und wie viele Seite es geben wird. Zusätzlich wird geprüft, ob die Seite die in $page steht existiert (also ob sie größer als 0 ist und nicht größer wie $seiten_anzahl ist).
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<? 
  @mysql_connect("localhost", "root", ""); 
 
  @$x=mysql_select_db("datenbank"); 
  if (empty($x)) { 
    echo "Fehler beim Verbinden mit dem Datenbankserver<br>"; 
    exit; 
  } 
 
  $pro_seite = 10; 
 
  $menge = mysql_query("SELECT * FROM tabelle"); 
  $menge = mysql_num_rows($menge); 
  $seiten_anzahl = $menge / $pro_seite;
 
  $page = $_GET['page']; 
  if (!isset($page) || !is_numeric($page) || $page > $seiten_anzahl  || $page <= 0){ 
    $page = 1; 
  } 
 
  $start = $page * $pro_seite - $pro_seite;
Dann werden 2 Funktionen deklariert, um Später mit Weiter und Zurück navigieren zu können.
PHP:
1
2
3
4
5
6
7
function back($page) { 
    return $page - 1; 
  } 
 
  function forward($page) { 
    return $page + 1; 
  }
Jetzt werden die Ergebnisse abgefragt und ausgegeben.
PHP:
1
2
3
4
5
6
  $sql = "Select * FROM tabelle Limit $start,$pro_seite"; 
  $query = mysql_query($sql); 
 
  while ($ds = mysql_fetch_object($query)){ 
    echo "$ds->id<br>"; 
  }
Zum Schluss werden die einzelnen Links zu den Seiten ausgegeben.
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if ($page == 1){ 
    echo '<div align="center">Zurück   '; 
  } else { 
    echo '<div align="center"><a href="?page='.back($page).'">Zurück</a>   '; 
  }
  for($i=0; $i < $seiten_anzahl; $i++){ 
    $x = $i + 1; 
 
    if($page == $x){ 
      echo "  <b>$x</b>  "; 
    } else { 
      echo "  <a href=\"?page=$x\">$x</a> "; 
    } 
  } 
 
  if ($page >= $seiten_anzahl){ 
    echo '   Weiter</div>'; 
  } else { 
    echo '   <a href="?page='.forward($page).'">Weiter</a></div>'; 
  } 
?>
So, das wars. Fragen bitte an PN.

mfg
forsterm

Dieses Tutorial wurde von forsterm am 04.01.2006 verfasst.

Kommentare

ezias meinte am 02.01.2007 um 07:01 Uhr:
Was ist wenn beim berechnen der Seitenanzahl ein ungerades Ergebnis herauskommt? Du solltest die ceil () Funktion mit einbauen ausserdem solltest du mit der SQL eigenen COUNT funktion arbeiten um Server Resourcen zu sparen.
nach obennach oben

Copyright © 2009 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung - Schueler.CC @ nexem