Salut à tous,

J'essaye péniblement de créer un système de news classique. Avec une première page affichant toutes les news avec un système de pagination.
La suivante pointant sur le détail de la news. Et laissant la possibilité de posté des commentaires.

Sur la première page en plus du contenu classique ( titre, content, date du post, etc...), j'affiche le nombre de commentaires posté selon l'ID de la news.

Dans la première page

Lorsque j'affiche dans l'ordre ASC tout fonctionne correctement.
Le nombre de commentaires correspond bien à la news
Dans le sens contraire le tout s'inverse. Et je n'arrive pas à contrer cette effet.

Je pense que le fait d'avoir l'affichage de ma news construit sur 2 requêtes cause le problème.

Et ce que je n'arrive pas à faire et qui pourrait êtres une solution. Ce serait une requête imbriqué ( ma première, lol).

Alors la page en question.

[code]
<?php $search = ob_get_clean(); ?>

<?php
/ Systeme de pagination/
$page = $bdd->query('SELECT COUNT(id) as nbArt FROM news');
$req = ($page) or die('Erreur SQL <br> Vérifier votre table');

$pagination = $page->fetch();

$nbArt = $pagination['nbArt'];
$perPage = 3;
$nbPage= ceil($nbArt/$perPage);

if(isset($_GET['id']) && $_GET['id']>0 && $_GET['id']<=$nbPage){
$cPage = $_GET['id'];
}
else{
$cPage =1;
}
/*/
$sql = $bdd->query("SELECT
FROM
news AS n,
news_categories AS n_c,
news_to_categories AS n_to_c
WHERE n.id = n_to_c.news_id
AND n_c.id=n_to_c.categories_id
ORDER BY date DESC

                ");

$req = ($sql) or die('Erreur SQL <br> Vérifier votre table');

$retour = $bdd->query("SELECT COUNT(news_commentaires.news_id) AS nbre_entrees
FROM news
LEFT JOIN news_commentaires
ON news.id = news_commentaires.news_id
WHERE news.id = news_commentaires.news_id

                   GROUP BY news.id
                   LIMIT ".(($cPage-1)*$perPage).",$perPage

                  " );

$req = ($retour) or die('Erreur SQL <br> Vérifier votre table');

?>
<!--Affichage dynamique du contenu -->
<?php ob_start() ?>
<?php

while($data = $sql->fetch() AND $donnees = $retour->fetch()):

  ?>

            <div class="content">
                <p class="img_news "><IMG SRC="http://lorempixum.com/200/240"></p>

                <span class="etiquette"> 
                <h2><?php echo $data["titre"]?></h2>
                <ul class="down">
                    <li>Poste le   <?php echo date("j/n/Y G:i", strtotime($data["date"]))?><li>
                    <li><a href="<?php echo WEBROOT ?>news/category/index&id=<?php echo $data['categories_id'];?>">categories <?php echo $data["cat"]?></a><li>

                       <?php if ($donnees['nbre_entrees'] == 0){?>
                    <li> Aucun commentaires</li>
                           <?php }else{ ?>
                        <li><?php echo $donnees['nbre_entrees']?> commentaires<li>
                        <?php }?>   
                </ul>
                 <p class="dsc"><?php echo $data["contenu"]?></br>
                 <?php echo "<p class=\"plus\"><a class=\"plus\" href=\"plus&id={$data["id"]}\">>> Lire la suite</a></p>"; ?>
                 </p>

                      <span>
            </div>

<?php endwhile; ?>
<div id="paginate">
<?php
for($i=1;$i<=$nbPage;$i++){
if($i==$cPage){
echo "<div id=\"pagination\">$i</div>";
}
else{

                    echo "<div id=\"pagination\"><a href=\"news&id=$i\">$i</a></div>";
                }

                }
                ?>

</div>
<?php $content = ob_get_clean(); ?>
[/code]

Merci d'avance.

Aucune réponse