Blätterfunktion LIMIT Fehler

-Ener-

Erfahrenes Mitglied
Hallo, ich habe vor eine Blätterfunktion zu nutzen um meine Daten auszugeben, folgenden Code (Auszug) hab ich schon gebastelt um über die Adressleiste schon einmal die Seiten zu wechseln:

PHP:
$limit = "9";

$limit2 = $limit * $_GET["page"] - $limit; 

$limit3 = $limit * $_GET["page"];

if ($_GET["page"] == "" OR $_GET["page"] == "0")
    {
    $limit2 = "0";
    $limit3 = $limit;
    }
 
$dbconnect = mysql_connect ($host, $user, $password);

$dbquery = "SELECT * from $table WHERE category = '$_GET[category]' ORDER BY id DESC LIMIT $limit2,$limit3";

Leider hab ich das Problem z.B. bei 20 Datensätzen, da gibt er auf der Seite 1 (Aufegerufen in der Adressleiste mit page=1) 9 Datensätze aus wie gewünscht, auf Seite 2 gibt er aber leider alle restlichen aus. Und wenn ich auf Seite 3 gehe gibt er 2 Stück aus, wie es auch sein sollte... ich frage mich warum er auf Seite 2 den ganzen Rest nach dem 9. Datensatz ausgibt. Hab mir auch schon $limit2 und $limit3 mal mit echo anzeigen lassen, da stimmt soweit alles...
 
Das ist eigentlich ganz einfach.

Alles fängt an bei Seite 1
im Limitwert beim Datensatz null.

Also legst du fest, wieviel Datensätze du pro seite haben magst.

PHP:
$max_pro_seite = 10;

Dann ist dein Limitwert immer

LIMIT (Seite * $max_pro_seite - $max_pro_seite), $max_pro_seite
 
oder so viel so ....

PHP:
$proseite=10;
$sql = "blabla";
...........
$number = mysql_num_rows($result);
$seiten=ceil($number/$proseite);
 
Also brauch ich $limit3 garnicht auszurechnen aha... also lautet das ganze jetzt so:


PHP:
$limit = "9";

$limit2 = $limit * $_GET["page"] - $limit; 

if ($_GET["page"] == "" OR $_GET["page"] == "0")
    {
    $limit2 = "0";
    $limit3 = $limit;
    }
 
$dbconnect = mysql_connect ($host, $user, $password);

$dbquery = "SELECT * from $table WHERE category = '$_GET[category]' ORDER BY id DESC LIMIT $limit2,$limit";

Und es funktioniert, danke =)
 
Zurück