去年我爲一個網站文件創建了一個分頁,我從來沒有真的必須再次使用它。升級PHP分頁功能運行更快
但是現在我需要在更大的應用程序中使用它,並且恐怕它不會在大量的mysql行中表現得很好,我不知道。
我會發佈一個示例波紋管,如果有人能告訴我我是否真的需要升級代碼,我會非常感激。
/* Connection file */
include('config.php');
/* Get the amount of all rows */
$mqc = "SELECT COUNT(*) AS total FROM table";
$mqe = mysql_query($mqc);
$mqn = mysql_fetch_array($mqe);
$total = $mqn['total'];
/* Rows per page */
$perPage = 10;
/* Range for the pagination */
$range = 5;
/* Actual page */
$page = isset($_GET['page']) &&
is_numeric($_GET['page']) &&
!empty($_GET['page']) ?
((int)$_GET['page'] * $range) : 0;
/* Query */
$mqc = "SELECT * FROM table
LIMIT " . $page . ", " . $perPage . " ";
$mqe = mysql_query($mqc);
/* Show results */
while($l = mysql_fetch_object($mqe))
{
echo $l->id . ' - ' . $l->title . '<br />';
}
/* Function for pagination */
function pages($total = false, $perPage = false, $page = false, $range = false)
{
/* Number of pages */
$totalPages = (ceil($total/$perPage)) - 1;
/* The range * 2 */
$range = $range;
/* The real param $_GET['page'] */
$realGetPage = !empty($page) ? ($page/$range) : 0;
/* Show the first page */
if($realGetPage >= 7)
{
echo ' <a href="?page=0"> 1 </a> ... ';
}
/* Loop to create the range */
for($i = ($realGetPage - $range); $i < ($range + $realGetPage); $i++)
{
/* Check out if the value isn't outta range */
if($i > 0 && $i < $totalPages)
{
/* Highlight the actual page */
if(($i - 1) == $realGetPage)
{
echo ' [ <a href="?page=' . ($i - 1) . '"> ' . $i . ' </a> ] ';
}
else
{
echo ' <a href="?page=' . ($i - 1) . '"> ' . $i . ' </a> ';
}
}
/* Store the number of the last page */
$lastPage = ($i + 1);
}
/* Hack to show 5678910 */
if($lastPage < ($range * 2) + 1)
{
for($j = $lastPage; $j <= ($range * 2); $j++)
{
if(($j - 1) == $realGetPage)
{
echo ' [ <a href="?page=' . ($j - 1) . '"> ' . $j . ' </a> ] ';
}
else
{
echo ' <a href="?page=' . ($j - 1) . '"> ' . $j . ' </a> ';
}
}
}
/* Last page */
echo ' ... <a href="?page=' . $totalPages . '"> ' . $totalPages . ' </a> ';
}
/* Show the pagination */
pages($total, $perPage, $page, $range);
您怎麼看?
這看起來像大多數分頁我見過。你有什麼特別的擔憂嗎? – Tchoupi 2012-03-26 03:01:18
我不知道,我從來沒有用過大量的應用程序......我認爲它會超過一百萬行,還有很多其他的大型表......所以我會一起選擇使用INNER和東西像這樣,你知道.. – Foreba 2012-03-26 03:07:23