我想限制页面上的帖子数量。这是我正在使用的代码: -
<?php
$query="select * from namedb";
$result=mysqli_query($connect,$query);
while($r=mysqli_fetch_assoc($result))
{
?>
<tr>
<td><?php echo $r['title']?></td>
<td><?php echo $r['comment']?></td>
<td><?php echo $r['cgender']?></td>
<td><?php echo $r['cnumerology']?></td>
<td><?php echo $r['creligion']?></td>
</tr>
<?php } ?>
并使用此代码进行分页
<?php
$query="select * from namedb";
$result=mysqli_query($connect,$query);
$count=mysqli_num_rows($result);
$pages=ceil($count/10);
for($i=1;$i<=$pages;$i++) { ?>
<a href="links.php?p=<?php echo $i; ?>">
<?php echo $i;?></a>
<?php } ?>
我的数据库中有21个帖子,我的页面上显示了20个帖子,但分页显示为1 2 3和2&amp;第3页显示相同的数据。如何解决它。
我想在每页显示30条记录,如果页面的记录少于30条,则不会显示分页。
答案 0 :(得分:0)
当您从数据库中获取名称时,代码中没有任何内容实际执行任何分页。将第一部分更改为以下代码,并保持代码的第二部分相同。
$page = 1;
$per_page = 10;
if(isset($_GET['p']) && is_numeric($_GET['p']) )
$page= $_GET['p'];
$offset = ($page -1) * $per_page;
$query="select * from namedb LIMIT $offset, $per_page ";
$result=mysqli_query($connect,$query);
while($r=mysqli_fetch_assoc($result))
{ ?>
<tr>
<td><?php echo $r['title']?></td>
<td><?php echo $r['comment']?></td>
<td><?php echo $r['cgender']?></td>
<td><?php echo $r['cnumerology']?></td>
<td><?php echo $r['creligion']?></td>
</tr>
<?php } ?>
答案 1 :(得分:0)
我认为您正在寻找的是MySQL <!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=
[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}
(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'myid'); // Insert your pixel ID here.
fbq('track', 'PageView');
var button = document.getElementById('Get Started');
button.addEventListener(
'click',
function() {
fbq('track', 'Lead', {
content_name: 'Get Started Submissions',
content_category: 'Form Fill',
value: 0.00,
currency: 'USD'
});
},
false
);
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id='myid'&ev=PageView&noscript=1"
/></noscript>
<!-- DO NOT MODIFY -->
<!-- End Facebook Pixel Code -->
命令。例如,通过写
LIMIT
您将获得第一批,第二批,第三批30个结果。这里,第一个数字是给出偏移量(注意它从0开始,所以30实际上给出了第31个结果),而第二个数字表示将返回多少个条目。
您可以通过计算GET参数SELECT * FROM namedb LIMIT 0,30
SELECT * FROM namedb LIMIT 30,30
SELECT * FROM namedb LIMIT 60,30
...
的偏移量将其集成到脚本的第一部分中,如下所示:
p
$length_of_page = 30;
$page = intval($_GET["p"]);
$offset = $page * $length_of_page;
$query = "SELECT * FROM namedb LIMIT $offset, $length_of_page"
函数确保您确实在查询中插入了一个数字。这对于避免SQL注入非常重要。
答案 2 :(得分:0)
使用以下代码
<?php
$query="select * from namedb limit 0,30";
$result=mysqli_query($connect,$query);
while($r=mysqli_fetch_assoc($result))
{
?>
<tr>
<td><?php echo $r['title']?></td>
<td><?php echo $r['comment']?></td>
<td><?php echo $r['cgender']?></td>
<td><?php echo $r['cnumerology']?></td>
<td><?php echo $r['creligion']?></td>
</tr>
<?php } ?>