|
|
|
มีปัญหาเรื่องการแบ่งหน้าคะ คือตอนนี้ทำระบบค้นหารายงานนะคะแต่พอค้นหาได้แล้วกลับขึ้นเฉพาะหน้าแรกนะคะ |
|
|
|
|
|
|
|
ขอรบกวนด้วยนะคะ
|
|
|
|
|
Date :
2009-08-14 14:23:13 |
By :
preapo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาลองดูนะคะของคุณนะคะ
|
|
|
|
|
Date :
2009-08-15 09:08:32 |
By :
preapo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดูโค๊ดแล้วคะทำตามตัวอย่างแล้วแต่หน้าสองไม่ขึ้นเหมือนเดิมแต่ด้านล่างมีการแบ่งหน้าให้นะคะแต่ข้อมูลไม่ขึ้น
|
|
|
|
|
Date :
2009-08-15 13:25:24 |
By :
preapo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองอันนี้มั้ยอ่าค่ะ แค่แบ่งหน้าใช้มั้ยค่ะ
Code (PHP)
<?php
<?php
/**
* @author Marosdee
* @copyright 2009
*/
class pagination
{
var $perPage = 10;
var $defaultPage = 1;
var $totalCount = 0;
var $pagination = '';
var $defaultLink = '';
var $maxPage = 1;
public function __construct( $page, $perPage='', $totalCount='', $link='' )
{
if ( is_numeric($page) && $page > 0 ) $this->defaultPage = $page;
if ( is_numeric($perPage) && $perPage > 0 ) $this->perPage = $perPage;
if ( is_numeric($totalCount) && $totalCount > 0 ) $this->totalCount = $totalCount;
if ( $this->totalCount >= $this->perPage ) $this->maxPage = ceil( $this->totalCount / $this->perPage );
$this->defaultLink = $this->checkLink($link);
}
public function getPagination()
{
if ( $this->defaultPage == 1 )
{
$this->pagination .= ' <span>First</span> ';
}
else
{
$this->pagination .= ' <a href="' . $this->defaultLink . 'page=1" >First</a> ';
$this->pagination .= ' <a href="' . $this->defaultLink . 'page=' . ( $this->defaultPage - 1 ) . '" >Back</a> ';
}
if ( $this->maxPage <= 9 )
{
for ( $i = 1; $i <= $this->maxPage; $i++ )
{
$this->pagination .= $this->_getPagination($i);
}
}
else
{
for ( $i = 1; $i <= $this->maxPage; $i++ )
{
if ( $i == 1 || $i <= 3 )
{
$this->pagination .= $this->_getPagination($i);
}
elseif ( ( $this->maxPage - $i ) == 0 || ( $this->maxPage - $i ) <= 2 )
{
$this->pagination .= $this->_getPagination($i);
}
elseif ( $this->defaultPage >= 6 || ( $this->maxPage - $this->defaultPage ) >= 6 )
{
if ( ( $this->defaultPage - $i ) < 2 && ( $this->defaultPage - $i ) > -2 )
$this->pagination .= $this->_getPagination($i);
elseif ( ( $this->defaultPage - $i ) < 5 && ( $this->defaultPage - $i ) > -5 )
$this->pagination .= '.';
}
}
}
if ( $this->defaultPage == $this->maxPage )
{
$this->pagination .= ' <span>Last</span> ';
}
else
{
$this->pagination .= ' <a href="' . $this->defaultLink . 'page=' . ( $this->defaultPage + 1 ) . '" >Next</a> ';
$this->pagination .= ' <a href="' . $this->defaultLink . 'page=' . $this->maxPage . '" >Last</a> ';
}
return <<<HTMLBLOCK
<table width="100%">
<tr>
<td align="center" width="99%">
<div class="pagination">{$this->pagination}</div>
</td>
</tr>
</table>
HTMLBLOCK;
}
private function _getPagination($i)
{
if ( $this->defaultPage == $i )
{
return ' <span class="pagination_current">' . $i . '</span> ';
}
else
{
return ' <a href="' . $this->defaultLink . 'page=' . $i . '" class="pagination">' . $i . '</a> ';
}
}
private function checkLink($link)
{
if ( strpos($link, '?') )
return $link . '&';
else
return $link . '?';
}
}
//$pag = new pagination(1,10,50);
//echo $pag->getPagination( $_GET['page'], 10, 600, '' );
?>
?>
|
|
|
|
|
Date :
2009-08-15 13:35:37 |
By :
gummezaka |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาไปใส่ส่วนบนสุดนะค่ะ ต่อจากนั้นก้อตามนี้เลยค่ะ
Code (PHP)
<?php
<?php
//จำนวนข้อมูลต่อหน้า
$perPage = 15;
//หน้าที่แสดงตอนแรกๆ ให้ตั้งไว้ 1
$defaultPage = 1;
//รับค่าแบ่งหน้าจากตัวแปร GET page
if ( $_GET['page'] > 0 ) $defaultPage = $_GET['page'];
include "connect.php";
//ดึงข้อมูลตามปรกติ เพื่อนับข้อมุลทั้งหมด
$sql="select * from tb_supply order by id_sup asc ";
$result=mysql_db_query($dbname,$sql);
//นับข้อมูลทั้งหมด เอาตัวแปร $total ไปใช้แบ่งหน้า
$total=mysql_num_rows($result);
//คำนวน offset
$offset = ( $defaultPage - 1 ) * $perPage;
//ทำการแบ่งหน้า
$sql .= "LIMIT $offset, $perPage";
//ดึงข้อมุลที่ผ่านการแบ่งหน้าเรียบร้อยมาแสดง
$result=mysql_db_query($dbname,$sql);
$number=mysql_num_rows($result);
$no = $offset + 1;
?>
แล้วก้อเอาอันนี้ไว้ล้างสุดค่ะของตาราง
?>
Code (PHP)
[php]<?php
$pag = new pagination($defaultPage, $perPage, $total, $_SERVER['PHP_SELF']);
echo $pag->getPagination();
?>
|
|
|
|
|
Date :
2009-08-15 13:38:29 |
By :
gummezaka |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจาได้แล้วนะค่ะ
|
|
|
|
|
Date :
2009-08-15 13:39:05 |
By :
gummezaka |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคะ
|
|
|
|
|
Date :
2009-08-15 14:22:00 |
By :
preapo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|