| | | | |
| | ||
| Gesperrt Registriert seit: 03.12.2010
Beiträge: 860
PHP-Kenntnisse: Anfänger ![]() | Hallo, Leute! Ich würde gerne ein PHP-Programm auf 1 SELECT minimieren. Es geht um folgendes: In einer DB-Tabelle gibt es mehrere Einträge. Es sollen aber nicht alle Einträge auf einmal, sondern immer nur z. B. 10 Stück angezeigt werden. Man soll dann die Möglichkeit haben zu blättern. Es soll aber auch folgendes möglich sein: Über die URL wird z. B. übergeben: index.php?id=13 Diese ID ist eine DB-ID. Es sollen dann die Datensätze jener Seite angezeigt werden, auf denen sich auch der Datensatz mit dieser ID befindet. Würde man also pro Seite maximal 10 Datensätze anzeigen, würde man die ID 13 auf der 2ten Seite (bei 1 beginnend) finden. Aktuell schaut es so aus (Pseudocode): Code: $id=$_GET['id'];
$ok=false;
SELECT COUNT(id) AS anz
FROM tabelle
WHERE id<= $id
if($anz>0)
{
// $id befindet sich auf Seite (beginnend bei 0):
$seite = ceil($anz/$maxAnzProSeite)-1;
SELECT id
FROM tabelle
LIMIT $seite*$maxAnzProSeite , $maxAnzProSeite
$ok=true;
}
else
{
SELECT id
FROM tabelle
LIMIT 0, $maxAnzProSeite
}
EDIT: Ich befürchte, das ist nur möglich, wenn man LIMIT etwas anderes als eine Konstante übergibt, was aber wohl nicht möglich ist. http://dev.mysql.com/doc/refman/5.0/en/select.html: Zitat:
Geändert von coola (06.12.2010 um 19:09 Uhr). | |
| | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator | Hier http://www.php.de/scriptboerse/74048...gorithmus.html (Paginator Algorithmus) kannst du dir anschauen, wie man das machen kann, bzw. dir die Lösung gleich runterladen.
__________________ Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn? |
| | |
| | |
| Erfahrener Benutzer | Ich verstehe das noch nicht wirklich so ganz was du willst. Darum frage ich nun mal. Du willst also alle Datensätze auslesen die kleiner gleich einer gewissen ID sind. So und wenn da z.B. 46 Datensätze raus kommen sollen die Datensätze auf 5 Seitenaufgeteilt werden. Richtig? Dann kannst du dir die ganze IF Abfrage auch sparen und das ganz Limit Zeugs und die Where Clausel in eine Select Abfrage stecken. Mein Tipp aber schreibe dir eine Funktion zum blättern, oder besser eine Klasse, da bist du noch flexibler und sparst noch mehr Codeoverhead. Gruß Litter
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|