techker Posted January 23, 2012 Share Posted January 23, 2012 hey guys i have a pagination script that works great but when there is nothing in the table it returns an error saying querry empty.. can i mod it to say nothing.. if(!$conn) die("Failed to connect to database!"); $status = mysql_select_db($db, $conn); if(!$status) die("Failed to select database!"); $sql = 'SELECT * FROM Formulaire_S'; /* * 10 = Number of rows per page * 5 = Number of links * "param1=valu1¶m2=value2" = You can append your own parameters to paginations links */ $pager = new PS_Pagination($conn, $sql, 4, 5, "param1=valu1¶m2=value2"); $pager->setDebug(true); $rs = $pager->paginate(); if(!$rs) die(mysql_error()); Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/ Share on other sites More sharing options...
AyKay47 Posted January 23, 2012 Share Posted January 23, 2012 first we would have to see the PS_Pagination class contents. Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310194 Share on other sites More sharing options...
techker Posted January 23, 2012 Author Share Posted January 23, 2012 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 = 10, $links_per_page = 5, $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 = @mysql_query($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 = mysql_num_rows($all_rs ); @mysql_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}" ); if (! $rs) { if ($this->debug) echo "Pagination query failed. Check your query.<br /><br />Error Returned: " . mysql_error(); return false; } return $rs; } /** * 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 renderFirst($tag = 'Premier') { 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 = 'Dernier') { 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; } } Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310263 Share on other sites More sharing options...
AyKay47 Posted January 23, 2012 Share Posted January 23, 2012 okay, i looked over the class, the function paginate() relies on the variable $debug being set to true to display errors. Really you want those errors to show when you are in the developmental stage. However if you wish to remove the errors, simply remove this line from your code. $pager->setDebug(true); since $debug is defaulted to false. Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310287 Share on other sites More sharing options...
techker Posted January 23, 2012 Author Share Posted January 23, 2012 Ah!nice.i had a feeling debug had something to do with it but wasn't shure.thx for the help! Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310296 Share on other sites More sharing options...
techker Posted January 23, 2012 Author Share Posted January 23, 2012 od it still gives me a white page when there is no data Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310303 Share on other sites More sharing options...
AyKay47 Posted January 23, 2012 Share Posted January 23, 2012 od it still gives me a white page when there is no data well if there is nothing in the table then of course it will not display anything, what exactly would you like it to do? Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310304 Share on other sites More sharing options...
techker Posted January 23, 2012 Author Share Posted January 23, 2012 wel its because the script is in a full page ..there is links and all on that page.. so the hole page does not show.. i would like it to show nothing..but the rest of the page needs to stay.. Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310305 Share on other sites More sharing options...
AyKay47 Posted January 23, 2012 Share Posted January 23, 2012 you will need to modify some things in the class. if ($this->total_rows == 0) { if ($this->debug) echo "Query returned zero rows."; return FALSE; } it's really up to you. 1. you can remove this check all together. 2. you can make the "return false" statement dependent on $this->debug equating to true 3. you can remove the return FALSE. Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310309 Share on other sites More sharing options...
techker Posted January 23, 2012 Author Share Posted January 23, 2012 ya that did it..thx for the help!! Quote Link to comment https://forums.phpfreaks.com/topic/255562-returns-error-when-empty/#findComment-1310312 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.