• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ausgabe über mehrere Seiten verteilen

Tronjer

Senior HTML'ler
Gesetzt den Fall, ich hätte eine Datenbanktabelle mit 100 Einträgen, von denen 10 auf einer Seite angezeigt werden sollen. Dann würde ich in die Abfrage ein LIMIT 10 einbauen, oder ich erstelle eine For-Schleife. Ich könnte auch die Anzahl aller Einträge mit mit count() auswerten und davon abhängig eine Aktion ausführen. Aber wie erreiche ich es mit PHP, dass nach Ausgabe einer bestimmten Anzahl von Einträgen dynamisch weitere Seiten angelegt werden, solange sich Werte im Array befinden, und am Seitenende automatisch Links erzeugt werden, mit denen sich durch die Seiten navigieren lässt? Also etwa so, wie man in Foren durch die Beiträge vergangener Monate blättert, oder Amazon seinen Produktkatalog erstellt.
 
Hmm, das wäre ein Anfang. Aber schon
PHP:
function products_excerpt($db)
{
    $abfrage = $db->query('SELECT SQL_CALC_FOUND_ROWS * FROM products WHERE id ORDER BY eingetragen DESC LIMIT 10');
    $anzahl_eintraege = $db->query('SELECT FOUND_ROWS()');
    echo $anzahl_eintraege;
}

gibt erwartungsgemäß " Object of class PDOStatement could not be converted to string" zurück. Was ist, wenn ich die Datenbank über PDO abfrage, aber ansonsten lieber Funktionen verwende? Ich kenne nur die klassenbasierte Methode __to_String(), um ein Objekt umzuwandeln. Das normale unserialize funktioniert bei PDO nicht.

Abgesehen davon: wenn ich nun die Anzahl der Datensätze ermittelt habe, wie erstelle ich daraus eine mehrseitige Produktliste? Mir fehlt da völlig der gedankliche Ansatz. :(

Das müsste ja etwas in der Form sein: Wenn mehr als 10 Datensätze vorhanden sind, dann erzeuge einen Link mit page +=1, hänge den Zusatz an die URL an, und lies die nächsten 10 Datensätze aus. Solange, bis keine Werte mehr im Array vorhanden sind.
 
Zuletzt bearbeitet:
Die von mir gezeigte Möglichkeit ist ein Feature von MySQL. Wenn Du eine Funktions-Bibliothek benutzt die das nicht unterstützt, wechsel sie. Wenn Du dir nicht sicher bist, ob es sie unterstützt, suche nach deiner Funktions-Bibliothek in Zusammenhang mit "SQL_CALC_FOUND_ROWS" (Handbuch PDO).
 
Zurück
Oben