Photoshop
Cinema 4d
Fotografie
Weitere Grafiksoftware
HTML / CSS
JavaScript
Flash
PHP
Webserver
Sonstige
Liebe User, da mich immer sehr viele Leute fragen "du, wie mach ich so ne Seitenaufteilung wie bei Gästebüchern?" werde ich das hier mal ein wenig erläutern.
Bereits zu Beginn sei 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.
Voraussetzung ist natürlich eine aktive Verbindung zur Datenbank.
Bei der MySQL Abfrage müsst ihr eure Spalten und den Tabellennamen entsprechend angeben.
Nun gut, kommen wir zum praktischen Teil:
Code:
Hier werden zunächst alle Datensätze ausgelesen und deren Anzahl anschließend mit der Funktion mysql_num_rows() ermittelt. (Zeile 2)
Dieser Wert wird der Variable $gesamt zugewiesen.
Tragt in Zeile 1 die Spalten und den Tabellennamen für die gewünschte Abfrage ein!
In Zeile 3 wird angegeben, wie viele Einträge pro Seite angezeigt werden sollen.
Aktuell werden 10 Einträge angezeigt, nach denen auf nächste die Seite gewechselt werden kann.
Code:
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, dass die Variable $site immer stehen bleibt!
So zur Ausgabe der Seitenanzeige:
Code:
Alle drei Variablen wurden im oberen Code-Teil schon festgelegt.
$link_string enthält alle Links für die einzelnen Seiten und mit $start_nr und $ende werden die Nummern der aktuellen Beiträge angezeigt.
Diese können bei Bedarf auch weggelassen werden.
So wir kommen nun zum wichtigsten Teil des Scriptes:
Die Hauptausgabe.
Als erstes lesen wir wieder die Beiträge aus:
Code:
Hier wird mit $start und $eintraege_pro_seite festgelegt, welche Einträge ausgelesen werden sollen.
Ändert wieder die Spalten und den Tabellennamen eurer Datenbank entsprechend!
Nachdem ihr das gemacht habt, könnt ihr über eine while-Schleife eure Beiträge ausgeben:
Code:
Zeile 2 ändert ihr in eure gewünschte Ausgabe.
Ich hoffe es hat alles geklappt.
Ich wünsche euch viel Spaß mit eurer neuen Ausgabe.
Wenn ihr Fragen habt stellt sie einfach im Forum.
LG René
Twittern
>> Allgemeine Fragen oder Probleme mit dem Tutorial? Hier gehts zum Forum!
Bereits zu Beginn sei 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.
Voraussetzung ist natürlich eine aktive Verbindung zur Datenbank.
Bei der MySQL Abfrage müsst ihr eure Spalten und den Tabellennamen entsprechend angeben.
Nun gut, kommen wir zum praktischen Teil:
Code:
$result = mysql_query("SELECT * FROM db ORDER BY datum");
$gesamt = mysql_num_rows($result);
$eintraege_pro_seite = 10;
$gesamt = mysql_num_rows($result);
$eintraege_pro_seite = 10;
Hier werden zunächst alle Datensätze ausgelesen und deren Anzahl anschließend mit der Funktion mysql_num_rows() ermittelt. (Zeile 2)
Dieser Wert wird der Variable $gesamt zugewiesen.
Tragt in Zeile 1 die Spalten und den Tabellennamen für die gewünschte Abfrage ein!
In Zeile 3 wird angegeben, wie viele Einträge pro Seite angezeigt werden sollen.
Aktuell werden 10 Einträge angezeigt, nach denen auf nächste die Seite gewechselt werden kann.
Code:
$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.'">«</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.'">»</a>';
}
$link_string = implode(" | ", $links);
$start = ($site-1)*$eintraege_pro_seite;
$start_nr = $start+1;
$ende = $start+10;
if($ende > $gesamt)
{
$ende = $gesamt;
}
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.'">«</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.'">»</a>';
}
$link_string = implode(" | ", $links);
$start = ($site-1)*$eintraege_pro_seite;
$start_nr = $start+1;
$ende = $start+10;
if($ende > $gesamt)
{
$ende = $gesamt;
}
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, dass die Variable $site immer stehen bleibt!
So zur Ausgabe der Seitenanzeige:
Code:
echo $link_string.'<br />Aktuelle Beiträge: '.$start_nr.' - '.$ende;
Alle drei Variablen wurden im oberen Code-Teil schon festgelegt.
$link_string enthält alle Links für die einzelnen Seiten und mit $start_nr und $ende werden die Nummern der aktuellen Beiträge angezeigt.
Diese können bei Bedarf auch weggelassen werden.
So wir kommen nun zum wichtigsten Teil des Scriptes:
Die Hauptausgabe.
Als erstes lesen wir wieder die Beiträge aus:
Code:
$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 den Tabellennamen eurer Datenbank entsprechend!
Nachdem ihr das gemacht habt, könnt ihr über eine while-Schleife eure Beiträge ausgeben:
Code:
while($row = mysql_fetch_array($result2))
{
echo $row[name];
}
{
echo $row[name];
}
Zeile 2 ändert ihr in eure gewünschte Ausgabe.
Ich hoffe es hat alles geklappt.
Ich wünsche euch viel Spaß mit eurer neuen Ausgabe.
Wenn ihr Fragen habt stellt sie einfach im Forum.
LG René
>> Allgemeine Fragen oder Probleme mit dem Tutorial? Hier gehts zum Forum!