PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Datenbankabfrage


kueb
25.09.2009, 15:33:35
Hi,

ich habe ca. 50 Datensätzen, die über

index.php?id=

abgerufen werden. Auf jeder Seite sollen Links zu den nächsten 5 Seiten aus der Datenbank stehen (auf Seite 1 Links zu den Seiten 2-6, auf Seite 2 Links zu 3-7, usw...).
Das habe ich wie folgt gelöst:
<?php
$result=mysql_query("SELECT id, title FROM tabelle WHERE id>'$id' ORDER BY id ASC LIMIT 5");
while($rows=mysql_fetch_array($result)) {
echo '<a href="index.php?id='.$rows[id].'">'.$rows[title].'</a>';
}
?>
Es funktioniert auch schon ganz gut.

Problem: Ab Seite 45 werden weniger als 5 Links angezeigt (logisch) und Seite 1 wird nie verlinkt.

Frage: Könnte man die Abfrage so gestalten, dass nach id 50 einfach wieder mit id 1 begonnen wird und so beispielsweise auf Seite 50 Links zu den Seiten 1-5 angezeigt werden?

Ich bin leider ein ziemlicher PHP Neuling, daher für jede Hilfe dankbar!

vt1816
25.09.2009, 19:44:42
Hallo und willkommen hier im Forum.

Na klar geht das. In Deine Funktion eine Abfrage einbauen auf welcher Seite Du Dich befindest und entsprechend den Link für die Seitensteuerung ändern. Suche mal hier im Forum/Snippes - da findest Du genügend Beispiele.

Einbauen und wenn Du dann nicht weiterkommst - hier wieder fragen.

kueb
16.10.2009, 09:54:12
Ein bisschen Peinlich, aber das Projekt wurde zurückgestellt und darum ist es bei mir etwas in Vergessenheit geraten...
Danke trotzdem für die Antwort vt1816!

Wollte nur kurz sagen, dass ich das Problem lösen konnte

$linkList=mysql_query("SELECT id, title FROM tabelle WHERE id>$id ORDER BY id ASC LIMIT 5");
while($rows=mysql_fetch_array($linkList)) {
echo '<a href="index.php?id='.$rows[id].'">'.$rows[title].'</a>';
}

if(mysql_num_rows($linkList)<5) {
$diff=5-mysql_num_rows($linkList);
$linkList2=mysql_query("SELECT id, title FROM tabelle WHERE id>0 ORDER BY id ASC LIMIT $diff");
while($rows=mysql_fetch_array($linkList2)) {
echo '<a href="index.php?id='.$rows[id].'">'.$rows[title].'</a>';
}
}

War eigentlich ganz einfach :)