Problème boucle for

Résolu/Fermé
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 - Modifié par tete0148 le 9/06/2013 à 15:54
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 - 10 juin 2013 à 07:32
Bonjour , je me sert d' une boucle for pour faire un système d' affichage de messages sur mon site, cette boucle est censée afficher un lien qui permet de changer de page.
<?php
   try
     {
         $bdd = new PDO('mysql:host=*****l;dbname=*****', '*****', '*****');

     }
     catch(Exception $e)
     {
         die('Erreur : '.$e->getMessage());
     }
    $messages_par_pages = 2;
    
    $retour = $bdd->query('SELECT COUNT(*) AS nb_messages FROM messages');
    
    
    $totalDesMessages = $donnees['nb_messages'];  
    $nombreDePages  = ceil($totalDesMessages / $messages_par_pages); // On calcule le nombre de pages à créer
  
    
    if (isset($_GET['page']))
    {
           $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
           $page = 1; // On se met sur la page 1 (par défaut)
    }
    $premierMessageAafficher = ($page - 1) * $messages_par_pages;
    $reponse = $bdd->query('SELECT * FROM messages ORDER BY id_message DESC LIMIT ' . $premierMessageAafficher . ', ' . $messages_par_pages);
    $messages = $reponse->fetchAll();
    
    foreach ($messages as $element)
     { echo '
       <div id="news"><?php echo $element["id_message"]; ?>
        <p class="infos_news">Ajouter par <?php echo $element["auteur_message"]; ?> le <?php echo $element["date_message"]; ?></p>
        <p class="titre_news"><?php echo $element["titre_message]; ?></p>
        <p class="contenu_news"><?php echo $element["contenu_message"]; ?></p>
       </div>' ;
           }
 for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
      echo '<a href="index.php?page=' . $i . '">' . $i . '</a> ';
}
 


Cette boucle for ne s' affiche tout simplement pas, il n' y a pourtant pas d' erreur.

Merci de votre réponse
Sincèrement ...
A voir également:

3 réponses

Utilisateur anonyme
9 juin 2013 à 17:28
Bonjour

Tu es dans un passage en PHP dans ton script, et tu ouvres à nouveau une balise PHP. Ça ne veut rien dire et c'est incorrect :
  { echo '
       <div id="news"><?php echo $element["id_message"]; ?>

Il y a plusieurs façon de faire, entre autres :
    foreach ($messages as $element)
     { ?>
       <div id="news"><?php echo $element["id_message"]; ?>
        <p class="infos_news">Ajouter par <?php echo $element["auteur_message"]; ?> le <?php echo $element["date_message"]; ?></p>
        <p class="titre_news"><?php echo $element["titre_message]; ?></p>
        <p class="contenu_news"><?php echo $element["contenu_message"]; ?></p>
       </div>' ;
        <?php   }
1
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
9 juin 2013 à 19:53
Je ne comprend pas très bien ta réponse , la boucle qui ne fonctionne pas est celle-ci :
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
      echo '<a href="index.php?page=' . $i . '">' . $i . '</a> ';
}

qui se trouve en fin de code.

0
Utilisateur anonyme
9 juin 2013 à 20:45
Comprends-tu que tu rouvrais une balise <?PHP Alors que tu étais déjà dans du php ? La structure du code est complètement incohérente : on ne sait pas
Je remarque de plus que tu as oublié un " dans echo $element["titre_message];

Alors ça m'étonnerait beaucoup que le début de ton code marche : c'est peut-être ce qui empêche ta boucle finale de fonctionner.

D'autre part, ta valeur de $nombreDePages est mal calculé. Il faut ajouter 1, car tel que tu le calcules, si tu n'as qu'un seul message, tu as 0 page (et ton for n'affiche rien du tout)
0
tete0148 Messages postés 413 Date d'inscription mercredi 19 décembre 2012 Statut Membre Dernière intervention 15 juin 2017 89
10 juin 2013 à 07:32
Ah oui effectivement, ça vient de ça je n' ai pas de pages vu que jai que 26 messages et que je veut en afficher 20 parfois. Et les petites erreurs sont dûes au multiples essais pour que ça marche, j' ai déplacé des bouts de code ...
0