sql = $sql; $this->itemsPerPage = $itemsPerPage; //Anzahl Datensätze ermitteln $sql = "SELECT COUNT(*) AS count_items FROM ({$this->sql}) AS data_for_count"; $result = mysql_query($sql); $countItems = mysql_result($result, 0, 0); mysql_free_result($result); //Die Seiten definieren-> array([pageNr] => [LIMIT-Start der DB]) $this->pages = range(0, $countItems-1, $this->itemsPerPage); $this->index = array_keys($this->pages); } /** * Die aktuelle Seitennummer setzen * @param $pageNr Integer */ public function setPageNr($pageNr){ $this->actPageNr = $pageNr; } /** * Ein SQL ausgeben mit dem man die Daten abrufen kann * @retrun String SQL-Statement */ public function getActSql(){ return "{$this->sql} LIMIT {$this->pages[$this->actPageNr]}, {$this->itemsPerPage}"; } /** * @return Array Gibt ein Array mit allen Seitennummern aus */ public function getPageNumbers(){ return $this->index; } /** * Begin of File * @param $pageNr Integer Optional: zu prüfende Nr * @return Boolean Gibt an ob der Zeiger auf dem ersten Element steht */ public function bof($pageNr = false){ if(!$pageNr) $pageNr = $this->actPageNr; return $pageNr <= $this->getFirstNr(); } /** * End of File * @param $pageNr Integer Optional: zu prüfende Nr * @return Boolean Gibt an ob der Zeiger auf dem letzten Element steht */ public function eof($pageNr = false){ if(!$pageNr) $pageNr = $this->actPageNr; return $pageNr >= $this->getLastNr(); } /** * @return Integer Erste Seitennummer */ public function getFirstNr(){ return reset($this->index); } /** * @return Integer Letzte Seitennummer */ public function getLastNr(){ return end($this->index); } /** * @return Integer Nächste Seitennummer (false falls wir bereits am Ende sind) */ public function getNextNr($pageNr = false){ if(!$pageNr) $pageNr = $this->actPageNr; return ($this->eof($pageNr)) ? false : $pageNr+1; } /** * @return Integer Vorhergehende Seitennummer (false falls wir bereits am Anfang sind) */ public function getPrevNr($pageNr = false){ if(!$pageNr) $pageNr = $this->actPageNr; return ($this->bof($pageNr)) ? false : $pageNr-1; } } ?>