Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Seiteneinteilung bei Abfragen Antworten
Seiteneinteilung bei Abfragen

balalaika
Pixelschubser


Beiträge: 6


Hallo,

wie kann man das machen, dass man bei Anfragen mit vielen Treffern diese auf verschiedene Seiten aufgeteilt werden? ich habe bisher nur Lösungen gefunden, bei denen jeweils von vornherein feststeht, wieviele Seiten es werden und dann für jede seite eine eigene Tabelle mit den Daten erstellt wurde. Aber ich brauche eine Lösung, die sich automatisch anpasst...

Wer kann mir da weiterhelfen?

Gruss Bala

P.S. Bin noch relativ unerfahren, also bitte habt Nachsehen

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Wofür willst du das denn haben? Ein Gästebuch? Eine Suche? Also wenn du die Anzahl an Ergebnissen weißt, dann is das relativ einfach. Geht das denn per MySQL oder wie?

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

balalaika
Pixelschubser


Beiträge: 6


nein, es geht da eher um eine (mysql)datenbank, die nach unterschiedlichen kriterien abgesucht werden kann. man weiss also nie, wieviel ergebnisse die query liefern wird. das macht die sache eben so schwer... habe zwar so eine ungefähre vorstellung davon, wie das aussehen sollte in der theorie, aber die praxis...kenne mich halt noch zu wenig mit php aus, um das mal eben so umsetzen zu können.

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


ok, das gleiche hab ich in meinem Gästebuch auch. Ich kann da 2 MySQL abfragen leider nicht ganz umgehen. Geht folgendermaßen:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9:
//Berechnung der Einträge für die aktuelle Seite
//$pageentries ist dabei die anzahl der Einträge pro Seite
$anfang = ($seite - 1) * $pageentries
$ende = $anfang + $pageentries;
$query = "SELECT * FROM guestbook";
$result = mysql_query($query,$connection);
$gesamt = mysql_num_rows($result);
$seiten = ceil($gesamt / $pageentries);
$eintragnow = $gesamt - $anfang;


und hier dann die endgültige Abfrage:
1: 
2: 
3:
//Anfrage an die Datenbank für die benötigten Einträge
$query = "SELECT * FROM guestbook ORDER BY id DESC LIMIT $anfang, $pageentries";
$result = mysql_query($query,$connection);


---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

balalaika
Pixelschubser


Beiträge: 6


Danke, aber so weit bin ich auch schon.
Bisher habe ich folgendes gedacht:
1. Ermitteln, wieviele Seiten es werden (wie Du es beschrieben hast)
2. Seitennummern in ensprechender Anzahl ausgeben lassen

Ab hier komme ich dann nicht so richtig weiter:
3. jeder Seitennummern einen Link zuweisen, der die erste Seite neu lädt, allerdings mit geänderten Parametern für LIMIT. Die Angaben für LIMIT sind soweit dann kei Prob, das ist einfach. Nur - wie lasse ich die Seite dann neu laden mit der info, dass die Seitennummer jetzt nicht 1 ist, sondern meintwegen 5? Wir sieht die Syntax dafür aus?

Dann:
Wie mache ich es, dass die aktuelle Seitennummer etwas anders aussieht als die andere (z.B. andere Farbe, größere Schrift etc. als die restlichen)?

ich glaube, ch habe heute schon zuviel gedacht... Ist sicher alles easy...

  Profil   Editieren   Zitieren
 

Antworten
Nach oben