ok
Direktori : /home2/globaltriumphfou/public_html/admin_panel/ |
Current File : /home2/globaltriumphfou/public_html/admin_panel/ps_pagination.php |
<?php class PS_Pagination { var $php_self; var $rows_per_page = 10; //Number of records to display per page var $total_rows = 0; //Total number of rows returned by the query var $links_per_page = 5; //Number of links to display per page var $append = ""; //Paremeters to append to pagination links var $sql = ""; var $debug = false; var $conn = false; var $page = 1; var $max_pages = 0; var $offset = 0; /** * Constructor * * @param resource $connection Mysql connection link * @param string $sql SQL query to paginate. Example : SELECT * FROM users * @param integer $rows_per_page Number of records to display per page. Defaults to 10 * @param integer $links_per_page Number of links to display per page. Defaults to 5 * @param string $append Parameters to be appended to pagination links */ function PS_Pagination($connection, $sql, $rows_per_page, $links_per_page, $append = "") { $this->conn = $connection; $this->sql = $sql; $this->rows_per_page = (int)$rows_per_page; if (intval($links_per_page ) > 0) { $this->links_per_page = (int)$links_per_page; } else { $this->links_per_page = 5; } $this->append = $append; $this->php_self = htmlspecialchars($_SERVER['PHP_SELF'] ); if (isset($_GET['page'] )) { $this->page = intval($_GET['page'] ); } } /** * Executes the SQL query and initializes internal variables * * @access public * @return resource */ function paginate() { //Check for valid mysql connection /*if (! $this->conn || ! is_resource($this->conn )) { if ($this->debug) echo "MySQL connection missing<br />"; return false; }*/ //Find total number of rows $all_rs = @mysqli_query($this->conn,$this->sql ); if (! $all_rs) { if ($this->debug) echo "SQL query failed. Check your query.<br /><br />Error Returned: " . mysql_error(); return false; } $this->total_rows = mysqli_num_rows($all_rs ); @mysqli_close($all_rs ); //Return FALSE if no rows found if ($this->total_rows == 0) { if ($this->debug) echo "Query returned zero rows."; return FALSE; } //Max number of pages $this->max_pages = ceil($this->total_rows / $this->rows_per_page ); if ($this->links_per_page > $this->max_pages) { $this->links_per_page = $this->max_pages; } //Check the page value just in case someone is trying to input an aribitrary value if ($this->page > $this->max_pages || $this->page <= 0) { $this->page = 1; } //Calculate Offset $this->offset = $this->rows_per_page * ($this->page - 1); //Fetch the required result set $rs = @mysqli_query($this->conn,$this->sql . " LIMIT {$this->offset}, {$this->rows_per_page}" ); if (! $rs) { if ($this->debug) echo "Pagination query failed. Check your query.<br /><br />Error Returned: " . mysql_error(); return false; } return $rs; } function exportintoexcel() { //Check for valid mysql connection /*if (! $this->conn || ! is_resource($this->conn )) { if ($this->debug) echo "MySQL connection missing<br />"; return false; }*/ //Find total number of rows $all_rs = @mysqli_query($this->conn,$this->sql ); if (! $all_rs) { if ($this->debug) echo "SQL query failed. Check your query.<br /><br />Error Returned: " . mysql_error(); return false; } $this->total_rows = mysqli_num_rows($all_rs ); @mysqli_close($all_rs ); //Return FALSE if no rows found if ($this->total_rows == 0) { if ($this->debug) echo "Query returned zero rows."; return FALSE; } //Max number of pages $this->max_pages = ceil($this->total_rows / $this->rows_per_page ); if ($this->links_per_page > $this->max_pages) { $this->links_per_page = $this->max_pages; } //Check the page value just in case someone is trying to input an aribitrary value if ($this->page > $this->max_pages || $this->page <= 0) { $this->page = 1; } //Calculate Offset $this->offset = $this->rows_per_page * ($this->page - 1); //Fetch the required result set //$rs = @mysql_query($this->sql . " LIMIT {$this->offset}, {$this->rows_per_page}" ); $rs = $this->sql . " LIMIT {$this->offset}, {$this->rows_per_page}" ; return '<a href="excelreport.php?query='.base64_encode($rs).'" class="graph"><img src="images/download.png" /> </a> '; } /** * Display the link to the first page * * @access public * @param string $tag Text string to be displayed as the link. Defaults to 'First' * @return string */ function rendercount() { //Check for valid mysql connection /*if (! $this->conn || ! is_resource($this->conn )) { if ($this->debug) echo "MySQL connection missing<br />"; return false; }*/ //Find total number of rows $all_rs = @mysqli_query($this->conn,$this->sql ); if (! $all_rs) { if ($this->debug) echo "SQL query failed. Check your query.<br /><br />Error Returned: " . mysqli_error(); return false; } $this->total_rows = mysqli_num_rows($all_rs ); @mysqli_close($all_rs ); //Return FALSE if no rows found if ($this->total_rows == 0) { if ($this->debug) echo "Query returned zero rows."; return FALSE; } //Max number of pages $this->max_pages = ceil($this->total_rows / $this->rows_per_page ); if ($this->links_per_page > $this->max_pages) { $this->links_per_page = $this->max_pages; } //Check the page value just in case someone is trying to input an aribitrary value if ($this->page > $this->max_pages || $this->page <= 0) { $this->page = 1; } //Calculate Offset $this->offset = $this->rows_per_page * ($this->page - 1); //Fetch the required result set if($this->rows_per_page *($this->page ) > $this->total_rows) { $rs = $this->offset .' - '.$this->total_rows; } else { $rs = $this->offset .' - '.$this->rows_per_page *($this->page ); } return $rs; } function renderFirst($tag = 'First') { if ($this->total_rows == 0) return FALSE; if ($this->page == 1) { return "$tag "; } else { return '<a href="' . $this->php_self . '?page=1&' . $this->append . '">' . $tag . '</a> '; } } /** * Display the link to the last page * * @access public * @param string $tag Text string to be displayed as the link. Defaults to 'Last' * @return string */ function renderLast($tag = 'Last') { if ($this->total_rows == 0) return FALSE; if ($this->page == $this->max_pages) { return $tag; } else { return ' <a href="' . $this->php_self . '?page=' . $this->max_pages . '&' . $this->append . '">' . $tag . '</a>'; } } /** * Display the next link * * @access public * @param string $tag Text string to be displayed as the link. Defaults to '>>' * @return string */ function renderNext($tag = '>>') { if ($this->total_rows == 0) return FALSE; if ($this->page < $this->max_pages) { return '<a href="' . $this->php_self . '?page=' . ($this->page + 1) . '&' . $this->append . '">' . $tag . '</a>'; } else { return $tag; } } /** * Display the previous link * * @access public * @param string $tag Text string to be displayed as the link. Defaults to '<<' * @return string */ function renderPrev($tag = '<<') { if ($this->total_rows == 0) return FALSE; if ($this->page > 1) { return ' <a href="' . $this->php_self . '?page=' . ($this->page - 1) . '&' . $this->append . '">' . $tag . '</a>'; } else { return " $tag"; } } /** * Display the page links * * @access public * @return string */ function renderNav($prefix = '<span class="page_link">', $suffix = '</span>') { if ($this->total_rows == 0) return FALSE; $batch = ceil($this->page / $this->links_per_page ); $end = $batch * $this->links_per_page; if ($end == $this->page) { //$end = $end + $this->links_per_page - 1; //$end = $end + ceil($this->links_per_page/2); } if ($end > $this->max_pages) { $end = $this->max_pages; } $start = $end - $this->links_per_page + 1; $links = ''; for($i = $start; $i <= $end; $i ++) { if ($i == $this->page) { $links .= $prefix . " $i " . $suffix; } else { $links .= ' ' . $prefix . '<a href="' . $this->php_self . '?page=' . $i . '&' . $this->append . '">' . $i . '</a>' . $suffix . ' '; } } return $links; } /** * Display full pagination navigation * * @access public * @return string */ function renderFullNav() { return $this->renderFirst() . ' ' . $this->renderPrev() . ' ' . $this->renderNav() . ' ' . $this->renderNext() . ' ' . $this->renderLast(); } /** * Set debug mode * * @access public * @param bool $debug Set to TRUE to enable debug messages * @return void */ function setDebug($debug) { $this->debug = $debug; } } ?>