suit: Paging mit Limit-Klause

Beitrag lesen

nach langer Zeit habe ich mal wieder einen Pager zu bauen, die DB ist MySQL  5.1.40-community. Der Pager ermöglicht das "Blättern" durch eine Tabelle und soll am Frontend (Browser) nur die Seitennummer zeigen. Dazu will ich die Anzahl der Seiten anhand count('spalte_wo_immer_was_drinsteht') ermitteln, durch meine Vorgabe (z.B. 20 Records/Page) ganzzahlig teilen, was dann ggf. zu einem zweiten Limit-Wert führt, der größer ist als die Anzahl der Records im Set. Mein erster Test auf der Konsole wirft zwar keinen Fehler, aber ich möchte sicher gehen, dass da nicht irgendwo (andere Umgebung, andere myVersion) ein error_log geschrieben wird.

Frage also: Aufrunden oder den Rest exakt bestimmen für die Limit-Klause?

Aufrunden auf ganze Seitenzahlen.

Ich hab' grade zufällig gestern einen auf die schnelle in PHP gebaut - die Grundsammlung der Informationen sieht so aus:

function pagination($page, $total, $perpage = 10, $mode = NULL) {  
		$config = array();  
		$config['page']     = intval($page);  
		$config['total']    = intval($total);  
		$config['perpage']  = intval($perpage);  
		$config['lastpage'] = ceil($config['total']/$config['perpage']);  
		  
		if($config['page'] == 0) {  
			$config['page'] = 1;  
		}  
		if($config['page'] > $config['lastpage']) {  
			$config['page'] = $config['lastpage'];  
		}  
		  
		if ($mode == 'limit') {  
			return ($config['page']-1)*$config['perpage'] . ',' . $config['perpage'];  
		}  
		// rest der die eigentliche Seitennavigation erstellt  
}

Funktioniert einwandfrei.

Der Code bzw. die Logik basiert prinzipiell auf dem hier von Malcolm Beck´s.