Partage
  • Partager sur Facebook
  • Partager sur Twitter

Categorie vide :'(

while($data = ....)

Sujet résolu
    2 septembre 2006 à 10:46:55

    Salut,
    J'ai un probleme avec mon forum, j'ai créer une deuxieme categorie et le sous forum qui est censé s'afficher ne s'affiche pas ...

    L'exemple en live : ICI
    La 2e catégorie est censé contenir un sous forum.

    Voici le code de l'index :
    while($data = mysql_fetch_assoc($sql))
    {
    ?>
    <tr>
            <td background="templates/hollidays/cellpic.png" width="600"><div align="center"><b><?php echo $data['nom']; ?></b></div>
            <td background="templates/hollidays/cellpic.png" width="70"><div align="center"><b>Sujets</b></div></td>
            <td background="templates/hollidays/cellpic.png" width="90"><div align="center"><b>Messages</b></div></td>
            <td background="templates/hollidays/cellpic.png" width="150"><div align="center"><b>Derniers messages</b></div></td>
    </tr>
    <?php
    $sql1 = mysql_query("SELECT * FROM ".$prefixe."forum WHERE cat_id = '".$data['id']."' ORDER BY position");
            while($data1 = mysql_fetch_assoc($sql1))
            {
            echo '<tr>';
                    if($data1['statut'] == 0)
                    {
                    echo '<td width="600"><img src="templates/hollidays/folder_big.png">';
                    }
                    elseif($data1['statut'] == 1)
                    {
                    echo '<td width="600"><img src="templates/hollidays/folder_big_new.png">';
                    }
                    else
                    {
                    echo '<td width="600"><img src="templates/hollidays/folder_locked_big.png">';
                    }
                    echo '<a href="forum.php?idforum='.$data1['id'].'"><b>'.$data1['nom'].'</b></a><br />'.$data1['description'].'</td>';
            $sql2 = mysql_query("SELECT COUNT(*) AS nb_topic FROM ".$prefixe."post WHERE forum_id = '".$data1['id']."'");
            $data2 = mysql_fetch_assoc($sql2);
            $sql3 = mysql_query("SELECT COUNT(*) AS nb_message FROM ".$prefixe."reponse WHERE id_forum = '".$data1['id']."'");
            $data3 = mysql_fetch_assoc($sql3);
    ?>

    <td width="70"><div align="center"><strong>
    <?php echo $data2['nb_topic']; ?>
    </strong></div></td>
    <td width="90"><div align="center"><strong>
    <?php echo $data3['nb_message']; ?>
    </strong></div></td>
    <td width="150">
    <?php
            $id_last_message = $data1['id_last_message'];
            echo '</tr>';
            }
    }


    Merci de votre aide ;)
    ++
    • Partager sur Facebook
    • Partager sur Twitter
      2 septembre 2006 à 12:48:17

      Ca te fait combien de requêtes pour afficher ta page ?

      Avant d'aller plus loin, je pense que tu devrais revoir toute la structure de tes tables, enfin c'est mon avis, tu peux pas continuer comme ça, chez moi, la liste des forums et sous forums se fait en une seule requête.
      Là tu en as beaucoup trop.
      • Partager sur Facebook
      • Partager sur Twitter
        2 septembre 2006 à 12:51:16

        4 requetes mais je ferais des jointures ou je peux quand l'index marchera ....

        Merci d'votre aide
        • Partager sur Facebook
        • Partager sur Twitter
          2 septembre 2006 à 13:43:05

          Vala :

          $sql = mysql_query("SELECT * FROM ".$prefixe."categorie ORDER BY position");


          Elle finira "jointuré" cette requête :p
          • Partager sur Facebook
          • Partager sur Twitter
            2 septembre 2006 à 14:07:43

            Je vois pas, fait un echo de ta requête $sql1 dans ta boucle pour voir ce que ça donne :

            echo "SELECT * FROM ".$prefixe."forum WHERE cat_id = '".$data['id']."' ORDER BY position";


            • Partager sur Facebook
            • Partager sur Twitter
              2 septembre 2006 à 15:37:54

              J'ai rajouter le bout de code que tu m'as donner, resultat :

              Citation : Pas de titre

              SELECT * FROM ZB_forum WHERE cat_id = '1' ORDER BY positionSELECT * FROM ZB_forum WHERE cat_id = '1' ORDER BY positionSELECT * FROM ZB_forum WHERE cat_id = '1' ORDER BY position



              EDIT : comment ça se fait que $data['id'] ne change pas ???
              Il y a bien deux entrées dans "ZB_categorie" ...
              • Partager sur Facebook
              • Partager sur Twitter
                2 septembre 2006 à 16:29:09

                C'est pas possible que tu es dans ta table ZB_forum des cat_id qui correspondent à l'id de ZB_categorie, puiqu'il n'y a que 3 tours de boucle, et donc dans la 2nde catégorie, il n'y pas de correspondance dans la table forum.

                • Partager sur Facebook
                • Partager sur Twitter

                Categorie vide :'(

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown