&MySQL : Anzeige der Datensaetze begrenzen
Nico
- php
0 Henryk Plötz0 Nico
0 SnowOne0 Nico
Hallo,
seit einiger Zeit schlage ich mich mit einem Problem herum, fuer dessen Loesung ich Eure Hilfe braeuchte:
Wie steuere per PHP die Ausgabe einer limitierten Anzahl von Datensaetzen aus einer MySQL - Datenbank (bis hierher kein Prob.!)
UND (!!!)
fuege darunter Seitenzahlen ein fuer die Anzeige der jeweils naechsten Serie an Datensaetzen.
Beste Gruesse
Nico
Moin
seit einiger Zeit schlage ich mich mit einem Problem herum, fuer dessen Loesung ich Eure Hilfe braeuchte:
Wie steuere per PHP die Ausgabe einer limitierten Anzahl von Datensaetzen aus einer MySQL - Datenbank (bis hierher kein Prob.!)
UND (!!!)
fuege darunter Seitenzahlen ein fuer die Anzeige der jeweils naechsten Serie an Datensaetzen.
Na du brauchst eine Variable die du von Seite zu Seite weitergibst und die die aktuelle Seitenzahl enthält, nennen wir sie $p. Hier ein Beispiel für 20 Datensätze pro Seite (anpassen kannst du das sicherlich selbst):
<?php
if($p<0) $p=0; // zu kleines $p wird auf 0 gesetzt
$result=mysql_query("SELECT COUNT(*) FROM table"); // Abfrage der Anzahl der Datensätze
list($num)=mysql_fetchrow($result);
if(($p+1)*20 > $num) $p=floor($num/20); // zu großes $p wird nach unten gerundet
$result=mysql_query("SELECT wasauchimmerduwillst FROM table LIMIT ".($p*20).",20"); // eigentliche Abfrage
// ....hier kommt der Rest deines PHP- und/oder HTML-Codes
//Link ausgeben
if($p>0) { ?>
<a href="?p=<?php echo $p-1;?>">Zurück</a>
<?php } if($p< $num/20) { ?>
<a href="?p=<?php echo $p+1;?>">Weiter</a>
<?php }
// .. und noch mehr Code
?>
Achtung: Ungetestet, und keine Garantie für Syntax-Fehler oder off-by-one errors, aber das Prinzip sollte stimmen :)
H2H
--
Henryk Plötz
Grüße von der Ostsee
Hi Henryk,
herzlichen Dank fuer die prompte Antwort. Dem Anschein nach ist es genau das, was ich suchte.
Ich werde den Code in mein Script einfuegen und testen. Gebe dann Rueckmeldung
Gruesse aus Luxemburg
Nico
Hallo Nico,
Wie steuere per PHP die Ausgabe einer limitierten Anzahl von Datensaetzen aus einer MySQL - Datenbank (bis hierher kein Prob.!)
SELECT .. FROM ... WHERE ... LIMIT 0,5
^^^^^^^^^
gibt die ersten 5 resultate aus der Abfrage aus... 0 ist der Startwert und 5 das Limit das angegeben wird...
weiterführende hilfe gibt es bestimmt aus mysql.com. muß man halt nen bißchen suchen....
UND (!!!)
na jetzt kommts aber ;o)
fuege darunter Seitenzahlen ein fuer die Anzeige der jeweils naechsten Serie an Datensaetzen.
das is halt ne sache von Deinen script..
finde herraus wieviele resultate deine abfrage gebracht hat, teile dies durch die anzahl der einträge die du auf einer seite haben willst und du hast die seitenmenge...
nun mußt du halt noch den startwert bei limit hochsetzten wenn auf eine weitere seite verwiesen wird
z.B.
$start = $seite + 20; // ermittelt die seite.. und berechnet den startwert
.... SELECT ...... LIMIT = $start, 20 ....
ich hoffe das war soweit verständlich ....wenn nicht .. frag einfach nochmal nach ;o)
MfG
DerSchneemann
Hi Snowman,
danke fuer Deinen Loesungsansatz!
Denkst Du nicht, dass Henryks Code das Problem loest? Ich hab's ncoh nicht getestet, aber duerfte doch dem ersten Anschein nach in die richtige Richtung deuten ... (?)
Gruesse
Nico