ok

Mini Shell

Direktori : /home2/globaltriumphfou/public_html/admin_panel/
Upload File :
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 = '&gt;&gt;') {

		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 = '&lt;&lt;') {

		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() . '&nbsp;' . $this->renderPrev() . '&nbsp;' . $this->renderNav() . '&nbsp;' . $this->renderNext() . '&nbsp;' . $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;

	}

}

?>


Zerion Mini Shell 1.0