دوشنبه 28 بهمن 1387, 8:50 بعدازظهر
سلام
سوالی داشتم زاجبه صفحه بندی در سایت
فرض کنید قرار 1000 رکورد از دیتابیس بخونیم و در صفحه نمایش بدیم و در هر صفحه 10 رکورد رو نمایش میدیم ، در این صورت ما 10 صفحه داریم
میخوام طوری این کارو انجام بدم که یک جا واسم کل صفحات رو نمایش نده ( یعنی 100 صفحه یه جا نمایش داده نشه )
مثلاً : 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | . . . . | 100
حالا وقتی مثلاً وقتی صفحه 10 رو زدیم از 11 شروع بشه تا 21 ( یعنی 10 صفحه 10 صفحه بره بالا )
من یک کلاس هم از PHPCLASS.org دانلود کردم اگر میشه لطفاً جواب سوال اول و بعد طرز استفاده از این کلاس رو بگید
سوالی داشتم زاجبه صفحه بندی در سایت
فرض کنید قرار 1000 رکورد از دیتابیس بخونیم و در صفحه نمایش بدیم و در هر صفحه 10 رکورد رو نمایش میدیم ، در این صورت ما 10 صفحه داریم
میخوام طوری این کارو انجام بدم که یک جا واسم کل صفحات رو نمایش نده ( یعنی 100 صفحه یه جا نمایش داده نشه )
مثلاً : 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | . . . . | 100
حالا وقتی مثلاً وقتی صفحه 10 رو زدیم از 11 شروع بشه تا 21 ( یعنی 10 صفحه 10 صفحه بره بالا )
من یک کلاس هم از PHPCLASS.org دانلود کردم اگر میشه لطفاً جواب سوال اول و بعد طرز استفاده از این کلاس رو بگید
class pagination {
var $fullresult; // record set that contains whole result from database
var $totalresult; // Total number records in database
var $query; // User passed query
var $resultPerPage; //Total records in each pages
var $resultpage; // Record set from each page
var $pages; // Total number of pages required
var $openPage; // currently opened page
private $con;
private $user;
private $pass;
private $host;
private $dbname;
/*
@param - User query
@param - Total number of result per page
*/
function connect()
{
$this->host = "localhost";
$this->user = "root";
$this->pass = "";
$this->dbname = "search";
$this->con = @mysql_connect($this->host,$this->user,$this->pass) or die("user & pass not valid");
mysql_select_db($this->dbname,$this->con) or die("Can Not Select Database");
}
function createPaging($query,$resultPerPage)
{
$this->query = $query;
$this->resultPerPage= $resultPerPage;
$this->fullresult = mysql_query($this->query);
$this->totalresult = mysql_num_rows($this->fullresult);
$this->pages = $this->findPages($this->totalresult,$this->resultPerPage);
if(isset($_GET['page']) && $_GET['page']>0) {
$this->openPage = $_GET['page'];
if($this->openPage > $this->pages) {
$this->openPage = 1;
}
$start = $this->openPage*$this->resultPerPage-$this->resultPerPage;
$end = $this->resultPerPage;
$this->query.= " LIMIT $start,$end";
}
elseif(@$_GET['page']>$this->pages) {
$start = $this->pages;
$end = $this->resultPerPage;
$this->query.= " LIMIT $start,$end";
}
else {
$this->openPage = 1;
$this->query .= " LIMIT 0,$this->resultPerPage";
}
$this->resultpage = mysql_query($this->query);
}
/*
function to calculate the total number of pages required
@param - Total number of records available
@param - Result per page
*/
function findPages($total,$perpage)
{
$pages = intval($total/$perpage);
if($total%$perpage > 0) $pages++;
return $pages;
}
/*
function to display the pagination
*/
function displayPaging()
{
$self = $_SERVER['PHP_SELF'];
if($this->openPage<=0) {
$next = 2;
}
else {
$next = $this->openPage+1;
}
$prev = $this->openPage-1;
$last = $this->pages;
if($this->openPage > 1) {
echo "<a href=$self?page=1>First</a>  ";
echo "<a href=$self?page=$prev>Prev</a>  ";
}
else {
echo "First  ";
echo "Prev  ";
}
for($i=1;$i<=$this->pages;$i++) {
if($i == $this->openPage)
echo "$i  ";
else
echo "<a href=$self?page=$i>$i</a>  ";
}
if($this->openPage < $this->pages) {
echo "<a href=$self?page=$next>Next</a>  ";
echo "<a href=$self?page=$last>Last</a>  ";
}
else {
echo "Next  ";
echo "Last  ";
}
}
$obj = new pagination();
$obj->connect();
}
