63130
Goto Top

Liste auf mehreren Seiten generieren

Ich habe ein Problem: Ich lade in einem Projekt mehrere Datenbankeinträge und erstelle eine Liste daraus. Nur kann diese Lsite mehrere hundert einträge erhalten.

Ich habe ein Problem: Ich lade in einem Projekt mehrere Datenbankeinträge und erstelle eine Liste daraus. Nur kann diese Lsite mehrere hundert einträge erhalten. Nun will ich ähnlich wie bei den Google Ergebnissen die Ergemisse auf mehreren Seiten anzeigen. Also sieht der Nutzer die ersten 10, auf Seite 2 dann die nächsten 10 und so weiter. Dabei sind die Einträge zwar mit einer ID durchgehend nummeriert, aber wenn ein Eintrag gelöscht wird, ist eine Lücke in der Nummerierung. Also kann ich mich nicht an der laufenden Nummerierung orientieren.

Könnt ihr mir da helfen?

Der Quelltext der normalen Liste bei der alle Einträge auf einer Seite stehen sieht so aus:

<?php
	include("../../include/header.php");  

	$ausgabe = mysql_query("SELECT * FROM vc_branchenbuch");  
				
			$sql = mysql_query("SELECT id, firma, ort FROM vc_branchenbuch ORDER BY firma ASC");  
				
				while ($row = mysql_fetch_array($sql)) {
					
					echo "<a href=\"detail.php?id=$row[id]\"><b>$row[firma]</b></a><br />$row[ort]<br /><br /><br />";  
				
					$temp = $row[id];
					
				}
				
include("../../include/footer.php");  
?>

Vielen Dank schonmal

Content-Key: 95081

Url: https://administrator.de/contentid/95081

Printed on: April 19, 2024 at 10:04 o'clock

Member: Arano
Arano Aug 22, 2008 at 09:32:21 (UTC)
Goto Top
Moin, dein gesuchtes "Zauberwort" heisst LIMIT (s. MySQL-SELECT)
Mit "SELECT * FROM `table` LIMIT 10" würdest du die ersten zehn Zeilen der Tabelle erhalten (mit "LIMIT 0,10" ebenfalls).
Mit "SELECT * FROM `table` LIMIT 10,10" die zweiten Zehn (angefangen beim 10., für zehn Stück).
Mit "SELECT * FROM `table` LIMIT 20,10" die dritten Zehn (angefangen beim 20., für zehn Stück)
Mit "SELECT * FROM `table` LIMIT 30,10" die vierten Zehn (angefangen beim 30., für zehn Stück)
u.s.w.

Jetzt liegt es an dir, ob du in der Seitennavigation die Zahl angibst bei der angefangen werden soll die Datensätze aus der DB zu lesen (der Offset), oder aber ob du die Seitenzahl verwendest und dir zusammen mit der Anzahl der Anzeigen pro Seite den Offset errechnest.

Schönen Start in Wochenende
~Arano
Mitglied: 63130
63130 Aug 22, 2008 at 10:02:49 (UTC)
Goto Top
Ah ok ich habe das sowiet verstanden. Dann muss ich nur noch die Einträge in der Datenbank automatisch zählen lassen. Geht das irgendwie?
Member: Arano
Arano Aug 22, 2008 at 22:00:43 (UTC)
Goto Top
Jawohl !

Und dieses kleine Zauberwort heisst COUNT

Hm... mir ist so als wäre es ein Unterschied ob man "COUNT(*)" oder "COUNT(`id`)" verwendet. Ich glaube "C(*)" zählt einmal alles Datensätze in jeder Spalte (id,firma, adresse,...), was bei "C(id)" dann ja wohl nicht so wäre.
Allerdings meine ich mich auch zu erinnern, das "C(*)" evtl. auf den Tabellenindex zugreift und somit keine wirkliche Zählung durchführt... ich weiss es nicht mehr, habe auch so schnell nichts dazu gefunden.

Gruß
Arano
Mitglied: 63130
63130 Aug 23, 2008 at 18:37:48 (UTC)
Goto Top
Danke damit werde ich es mal probieren.

Gruß,
Max
Mitglied: 63130
63130 Aug 25, 2008 at 05:14:43 (UTC)
Goto Top
Jetzt habe ich noch ein kleines, weiteres Problem:

Ich muss die Anzahl der zu generierenden Seiten herausfinden. Ich habe jetzt die Einträge gezählt, muss die aber auf den nächsten Zehner aufrunden und dann durch 10 teilem. Kann man in PHP runden???


EDIT: Erledigt. Mit ceil()
Member: masterG
masterG Aug 27, 2008 at 07:42:37 (UTC)
Goto Top
Zitat von @63130:
EDIT: Erledigt. Mit ceil()

Wenns erledigt ist schließe ich den Thread