Problem bei dem PHP Befehl floor

Hallo!

Für meine Internetseite programmiere ich gerade eine Userliste. Da ich nicht alle User auf einmal anzeigen möchte, habe ich mehrere „Seiten“.
Das ganze sieht so aus:

<?php // $user = Anzahl aller User
// $max\_data\_per\_page = Maximale anzahl an Usern auf einer Seite. $pages=floor($user/$max\_data\_per\_page); ?\> Das kann ich nun mit MySQL und dem Befehl limit auslesen. Das funktioniert auch alles Super, doch nehmen wir mal an es gibt genau 16 User. Und auf einer Seite werden 8 User angezeigt. So ergibt es dann mit dem Script 3 Seite (also eine Leere). Ich habe auch schon einen anderen Befehl außer floor benutz, doch da wird dann manchmal ein User einfach weggelassen. Mit welchem Befehl kann ich nun so runden, dass ich genau die anzahl an Seiten habe, die ich auch haben möchte?

Hallo

Welche PHP-Version verwendest du?

Also bei mir unter 5.2.12 ergibt

$user = 16;
$max\_data\_per\_page = 8;
$pages=floor($user/$max\_data\_per\_page);
echo $pages;

den Wert 2.

Gruß, sigterm

Das kann ich dir leider gar nich genau sagen (ich kann den Befehl phpinfo() nicht verwenden).
Aber komischerweise passiert das nicht immer, aber du hast recht: Es könnte an der PHP Version liegen.
Ich habe das gerade mal auf dem Localhost probiert und da gab es nicht dieses Problem.
Gibt es den eine Methode wie es auf jeden Fall Funktioniert?

Hallo

Mir ist gerade aufgefallen, dass du eigentlich die Funktion ceil() brauchst. floor() liefert in den meisten Fällen eine Seite zu wenig. Wenn man das dann mit einem +1 korrigieren will, dann tritt genau das Problem auf, das du beschrieben hast.

Bei aufwendigeren Berechnungen können außerdem Rundungsfehler entstehen, da muss man sich dann mal den genauen Code ansehen um zu entscheiden wie man das Problem am besten löst. Bei einer einfachen Division sollten da aber keine Probleme auftreten.

Gruß, sigterm