PHP分页循环没有可见链接



晚上好,我正在尝试创建一个分页系统,以显示每页一定数量的数据。一切都很好,除了一个小细节:没有可见的链接。

更准确地说:我的用户在他的个人页面上有9篇文章。考虑到我想每页有4篇文章,我总共应该有3页(最后一页只有1篇文章(。我的链接如下所示:http://127.0.0.1/projet3/mesannonces.php?page=1

手动更改URL中的页面(page=2..(时,页面会准确显示应该显示的内容。因此,我尝试创建一个循环来显示链接,而不是使用URL

<?php  
for($i=1;$i<=$pagesTotales;$i++)
{ echo '<a href="mesannonces.php?page='.$i.'">'.$i.'</a>' ; }

这个循环应该显示3个可点击的链接,但是,它只显示1个。考虑到手动设置下一页的URL会显示正确的页面,我想知道我可能做错了什么。

一切都很好,除了只有第一页的链接是可见的,当它应该显示3

如果你觉得这很有帮助,这里是整个页面的代码,在修剪了不必要的代码后:

<?php
session_start();
$mesannonces=$_SESSION['id'];
//tentative de connexion à la base de donnée 
try
{
$bdd = new PDO('mysql:host=localhost;dbname=espace_membre;charset=utf8', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage()); //message d'erreur au cas où la connexion échoue
}
////////////////////////////////////PAGING SYSTEM/////////////////////////////////////
if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page']>0)
{
$_GET['page']=intval($_GET['page']); //pour qu'on ne puisse pas passer autre chose que des chiffres dans l'URL 
$pageCourante=$_GET['page'];
}
else
{
$pageCourante=1; // si l'URL est incomplète, on est redirigé vers la première page 
}

$articleParPage=5; // choisir le nombre d'annonce d'articles par page 
$depart=($pageCourante-1)*$articleParPage ;
$articleTotalSQL=$bdd->prepare('SELECT * FROM articles WHERE fk_membres_id= ? ORDER BY date_publication DESC LIMIT '.$depart.','.$articleParPage.' ');
$articleTotalSQL->execute(array($mesannonces));
$articleTotal=$articleTotalSQL->rowCount();
$pagesTotales=ceil($articleTotal/$articleParPage);
//////////////////////////////////////////////////////////////////////////////////////////////
if(isset($_SESSION['id']))
{   echo "ok"; 
}
else
{
//echo "lol";
header('location:connexion.php');
} 
?>
<html>
<head>
<title>Profil de <?php echo $_SESSION['pseudo']?></title>    
<meta charset='utf-8'>
</head>

<body>
<div align="center">
<h3>Tes annonces TROKI</h3>
<br/>
<?php 
if (isset($_SESSION['id'])) 
{
?>
<h3>les annonces de <?php echo $_SESSION['pseudo']?> </h3>
pseudo = <?php echo $_SESSION['pseudo']?> <br/>

<?php 
}
?>
</div>
<div align="center">
<ul>
<?php while($a=$articleTotalSQL->fetch()) { ?>

<!-- this loop shows the articles from the database, everything works fine here-->
<li>
<img src="miniature/<?=$a['id']?>.jpg" width=50> <!-- la miniature de l'annonce-->
<a href="annonce.php?id=<?= $a['id']?>"><?=$a['titre_article']?> <?php echo $a['wilaya']?> <?php echo $a['type_article']?> </a> <a href="modifierannonce.php?edit=<?= $a['id']?> ">     modifier une annonce </a><a href="supprimerannonce.php?=<?= $a['id']?>">      supprimer</a></li>


<?php } ?>  
</ul>
</div>
<!-- pour changer de page-->
<div align="center"> 
<?php  
for($i=1;$i<=$pagesTotales;$i++) //this loop only shows 1 link instead of 3 
{ 
echo '<a href="mesannonces.php?page='.$i.'">'.$i.'</a>' ; 
}
?>
</div>
</body>
</html>

您的页面合计计算错误。您的计算基于提取的行数,而不是应用LIMIT之前匹配的行数。如果LIMIT 5,那么无论表中有多少行,所提取的行数都将始终小于或等于5。

如果您需要知道匹配的总数,则必须使用COUNT(*)和相同的WHERE约束进行二次计算。

最新更新