我有一个表从MYSQL数据库中提取票证并将其显示给用户。这部分功能非常好!但是,一旦用户获得5-10张票,页面就会变得冗长而难看。我想自动对响应进行分页,以便每页显示可能5
票证,并在后续页面上显示其余部分。
我正在使用Bootstrap并显示以下内容以显示分页。 “虽然我担心这只是伪代码”我将id添加到每个主要元素中。
<ul class="pager" id="pagerUL">
<li class="previous" id="previousUL">
<a href="#">← Previous</a>
</li>
<li class="next" id="nextUL">
<a href="#">Next →</a>
</li>
</ul>
基本上,用于在页面上提取数据库信息的唯一代码是:
<?php if(count($tickets) > 0) : ?>
<?php foreach ($tickets as $ticket): ?>
//table content
<?php endforeach ?>
<?php else : ?>
<tr>
<td colspan="7">No Tickets Created.</td>
</tr>
<?php endif; ?>
我认为我们可以在<?php if(count($tickets) > 0) : ?>
添加一些内容但老实说,我不确定因为我不是php的专家,从来没有尝试过,或者直到现在才需要建立分页。任何帮助,指导,想法将不胜感激。
答案 0 :(得分:1)
通过URL传递页码,然后通过PHP使用$ _GET获取它。
$page = $_GET['page'];
$per_page = 10; // Define it as you please
$start = $page*$per_page;
$query = "SELECT * FROM table LIMIT ".$start.", ".$per_page;
$result = mysql_query($query);
$count = mysql_num_rows($result);
$i = 0;
for($i=0;$i<$count;$i++)
{
//echo out what you want
echo "";
}
$total_pages = ceil($count/$per_page);
for($i=0;$i<$total_pages;$i++)
{
if($page != $i)
{
echo "<a href='/page.php?page=".$i."'>".$i."</a>";
} else
{
echo $i;
}
}