Hi,
I am fetching data from database & using pagination(showing 10 records per page).What i am trying if i want to print records between 20-30,I can print only these records(20-30).
or by using search if i get 4 result ,can print only 4 records.
Need suggestion
divyakrishnan 20 Junior Poster
visit the following url.
http://www.phpclasses.org/package/6563-PHP-Display-links-to-browse-listings-split-in-pages.html
karthik_ppts commented: helpful link +5
IIM 163 Master Poster
karthik_ppts commented: useful post +5
jacob21 0 Posting Whiz in Training
I already did the pagination & want to print the record.
Need help for printing the record
<?php
include("db_hindi.php");
include("ps_pagination.php");
//$result=mysql_query("SELECT * from user");
echo "<table border='1' align='center' width='700px'>
<tr>
<th colspan='3'>User Details</th>
<th></th>
</tr>
<tr>
<th>Username</th>
<th>Password</th>
<th>Email id</th>
<th>action</th>
</tr>";
$sql="SELECT * from user";
$pager = new PS_Pagination($conn, $sql, 10, 3, "param1=valu1¶m2=value2");
$pager->setDebug(true);
$rs = $pager->paginate();
if(!$rs) die(mysql_error());
while($row = mysql_fetch_assoc($rs))
{
echo "<tr>";
echo "<td>" . $row['username'] . "</td>";
echo "<td>" . $row['pass'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "<td align='center'>" . "<a href=\"#\"onclick=\"delP($row[uid])\"><img src=\"images/del.png\" border=\"0\" alt=\"Delete\" title=\"Delete\"></a>\n" . "</td>";
echo "</tr>";
}
?>
<td align="center"><a href="user-form.php">Add User</a></td>
<td align="center" colspan="3">
<?php
echo $pager->renderFirst();
echo $pager->renderPrev();
echo $pager->renderNav('<span>', '</span>');
echo $pager->renderLast();
?>
</td>
<?php
echo "</table>";
?>
divyakrishnan 20 Junior Poster
Post your php file ps_pagination.php
jacob21 0 Posting Whiz in Training
ps_pagination.php
<?php
/**
* PHPSense Pagination Class
*
* PHP tutorials and scripts
*
* @package PHPSense
* @author Jatinder Singh Thind
* @copyright Copyright (c) 2006, Jatinder Singh Thind
* @link http://www.phpsense.com
*/
// ------------------------------------------------------------------------
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 "<script type=\"text/javascript\">";
echo "alert('NO result Found !! Please Enter Valid Keyword for search!!');";
echo "window.location='details.php'";
echo "</script>";
echo "<script type=\"text/javascript\">";
//echo "No record found.";
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 = '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;
}
}
?>
jacob21 0 Posting Whiz in Training
I want to print all the records.Is there any method of pagination including print option
divyakrishnan 20 Junior Poster
What u want?want to set print option to print the report?
jacob21 0 Posting Whiz in Training
yes,but only selected records.
Suppose i did searching n got only 5 records.I want to print only those 5 records not all.
What u want?want to set print option to print the report?
divyakrishnan 20 Junior Poster
Use check box to select specific records.Mark the check boxs to be wanted print.
karthik_ppts 81 Posting Pro
Did you use print option in your code? If yes, which method you used to print?
karthik_ppts 81 Posting Pro
Try this
function report()
{
var WinPrint = window.open('', '', 'left=0,top=0,width=1024,height=768,toolbar=0,scrollbars=0,status=0');
var id=document.getElementById('report');
var str='<html><head><link href="style/style_user.css" rel="stylesheet" type="text/css" /></head><body><table width="100%">'+id.innerHTML+'</table></body></html>';
WinPrint.document.write(str);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}
<a href="javascript:void(0)" onclick="javascript:report();" class="add_new_link">Print</a>
<div id="report">
<!-- Your Search Result with pagination Here -->
</div>
Edited by karthik_ppts because: Mising some code
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.