Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher chaque entrée de la bdd sur une page

Sujet résolu
    26 novembre 2005 à 9:31:30

    Bonjour,
    j'ai comme projet, pour mon site, de faire un système de proposition de dossiers.
    Pour cela, il faut donc que les dossiers se trouvent dans la bdd.
    Jusque là, pas de problème, j'ai procédé comme pour le système de news du tp de M@teo en rajoutant un champ pseudo et un champ valide de type binary.

    Mais le problème, c'est que je ne sais pas comment je vais faire pour afficher chaque dossier sur une page et mettre un lien vers chaque page dans mon menu avec du php.

    Voilà le début de code:

    if (isset($_POST['valide']==1)
                    {
                     mysql_connect("localhost", "", "");
             mysql_select_db("");


    Et après je sèche. :s

    Pouvez-vous m'aider s'il vous plait ?

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2005 à 9:34:16

      Tu fait une requete SQL avec dans l'url un parametre avec l'id de l'article et dans ta requete tu rajoute
      mysql_query("... WHERE id='" . $_GET['article'] . "' ...");
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2005 à 9:44:36

        Edit: ça va, j'ai compris.

        Est ce que ça va cette requête:

        $reponse=mysql_query("SELECT * FROM dossiers WHERE id='" . $_GET['id_dossiers'] . "");


        ?

        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2005 à 10:11:06

          Euh oui normalement ça peut marcher apres ça depend de plein d'autre chose, masi fait ton code deja et dit nous comment ça se passe :D
          • Partager sur Facebook
          • Partager sur Twitter
            26 novembre 2005 à 10:17:14

            Ok, merci. Donc voici mon code... qui ne marche pas. ^^;

            <?php
                            if (isset($_POST['valide']==1))
                            {
                             mysql_connect("localhost", "", "");
                     mysql_select_db("");
                            
                             $reponse=mysql_query("SELECT * FROM dossiers WHERE id='" . $_GET['id_dossiers'] . "");
                             $donnees = mysql_fetch_array($reponse);
                ?>   
                             <p><img src="<?php echo $donnees['titre']; ?>" alt="dossier tsubasa"/></p>
                             <p><?php echo $donnes['contenu']; ?></p>
                             <div align="right">
                               Ecrit par <em><?php echo donnees['pseudo']; ?></em>, le <em><?php echo date('d/m/Y H\hi', $donnees['timestamp']); ?></em>
                            
                             <?php
                             }
                             mysql_close();
                             ?>


            Et voici l'erreur:

            Citation : erreur

            Parse error: parse error, unexpected T_IS_EQUAL, expecting ',' or ')' in /var/www/sdc/9/2/tsubasadestiny/test/dossiers.php on line 39



            Merci pour l'aide. :)
            • Partager sur Facebook
            • Partager sur Twitter
              26 novembre 2005 à 10:17:21

              Non ca va pas.


              SELECT * FROM dossiers WHERE id=".(int)$_GET['id_dossiers']
               

              • Partager sur Facebook
              • Partager sur Twitter
                26 novembre 2005 à 10:25:22

                Ok, merci pour la correction.

                J'ai modifié mon code, mais ça ne change rien. :euh:

                Mon code doit être très "caca" lol.

                • Partager sur Facebook
                • Partager sur Twitter
                  26 novembre 2005 à 10:31:35

                  <?PHP
                  if ($_POST['valide']==1 AND !empty($_GET['id_dossiers']) AND is_numeric($_GET['id_dossiers']))
                                  {
                                   mysql_connect("localhost", "", "");
                                   mysql_select_db("");
                                 
                                   $reponse=mysql_query("SELECT * FROM dossiers WHERE id=".(int)$_GET['id_dossiers'])or die(mysql_error());
                                   $donnees = mysql_fetch_assoc($reponse);
                  echo '
                      <p><img src="'
                  .$donnees['titre'].'" alt="dossier tsubasa"/></p>
                                   <p>'
                  .$donnes['contenu'].'</p>
                                   <div align="right">
                                     Ecrit par <em>'
                  .$donnees['pseudo'].'</em>, le <em>'.date('d/m/Y H\hi', $donnees['timestamp']).'</em>';
                  }
                  mysql_close();
                  ?>


                  bon sa fait des mois que je n'ai pas fait du php onc si il y a quelque erreurs pardone moi ^^!
                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 novembre 2005 à 10:34:37

                    Salut et merci.

                    J'ai essayé ton code et l'erreur a changé:

                    Citation : erreur

                    Parse error: parse error, unexpected T_LOGICAL_AND in /var/www/sdc/9/2/tsubasadestiny/test/dossiers.php on line 39



                    Merci pour l'aide et je t'excuse. :D
                    • Partager sur Facebook
                    • Partager sur Twitter
                      26 novembre 2005 à 10:37:18

                      Remplace donnees['pseudo'] par $donnees['pseudo'].
                      • Partager sur Facebook
                      • Partager sur Twitter
                        26 novembre 2005 à 10:41:02

                        voila j'ai édité réessay stp et si sa ne marche toujours pas potse la ligne qui produit l'erreur (pas selment le numero) :D
                        • Partager sur Facebook
                        • Partager sur Twitter
                          26 novembre 2005 à 10:48:56

                          Voilà, j'ai rajouté des ouvertures de parenthèses dans la 1ère ligne du code et j'ai modifié $pseudo:

                          <?php
                                          if (!empty($_POST['valide']) AND ($_POST['valide']==1) AND (!empty($_GET['id_dossiers']) AND is_numeric($_GET['id_dossiers']))
                                          {
                                           mysql_connect("localhost", "", "");
                                   mysql_select_db("");
                                           
                                           $reponse=mysql_query("SELECT * FROM dossiers WHERE id='" .(int)$_GET['id_dossiers'] . "");
                                           $donnees = mysql_fetch_array($reponse);
                              $reponse=mysql_query("SELECT * FROM dossiers WHERE id=".(int)$_GET['id_dossiers'])or die(mysql_error());
                                           $donnees = mysql_fetch_assoc($reponse);
                          echo '
                              <p><img src="'
                          .$donnees['titre'].'" alt="dossier tsubasa"/></p>
                                           <p>'
                          .$donnees['contenu'].'</p>
                                           <div align="right">
                                             Ecrit par <em>'
                          .$donnees['pseudo'].'</em>, le <em>'.date('d/m/Y H\hi', $donnees['timestamp']).'</em>';
                                           }
                                           mysql_close();
                                           ?>


                          Et donc ça me fait une nouvelle erreur:

                          Citation : erreur

                          Parse error: parse error, unexpected '{' in /var/www/sdc/9/2/tsubasadestiny/test/dossiers.php on line 40


                          Et la ligne 40 est l'ouverture de l'accolade.

                          Encore merci de m'aider.

                          EDit:

                          j'ai trouvé cette erreur. Il fallait fermer la 1ère parenthèse.
                          Maintenant, j'ai une autre erreur:

                          Citation : erreur

                          Warning: mysql_close(): no MySQL-Link resource supplied in /var/www/sdc/9/2/tsubasadestiny/test/dossiers.php on line 54



                          Et la ligne 54:
                          • Partager sur Facebook
                          • Partager sur Twitter
                            26 novembre 2005 à 10:55:43

                            oui parsequ'il y a une paranthése en plus regarde mon post en haut j'ai édité reprend le code et réessay (reprend tout le code pas selement les lignes qui produisent l'erreur)
                            • Partager sur Facebook
                            • Partager sur Twitter
                              26 novembre 2005 à 10:59:20

                              Merci, ce problème est réglé.

                              Maintenant, est ce que tu peux me dire quelle url je dois entrer pour aller sur la page ou il y a la premier dossier s'il te plait ?

                              Ca doit être un truc comme ça: http://monsite/test/dossiers.php? mais je sais pas quoi mettre après le "?" .
                              • Partager sur Facebook
                              • Partager sur Twitter
                                26 novembre 2005 à 11:06:53

                                ben d'apres ton code faut avoir 2 variable une a partire d'un formulaire $_POST['valide']
                                et une autre a partire du lien id_dossiers donc
                                tu dois faire une truc de ce genre
                                <?PHP
                                echo '<form method="post" action="dossiers.php?id_dossiers=5">
                                <input type="hidden" name="valide" value="1" />
                                <input type="submit" name="submit" value="Envoyer" />';
                                ?> un truc dans ce genre
                                ?>
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  26 novembre 2005 à 11:25:02

                                  Ok, ça marche presque à la perfection.
                                  Il reste une erreur:

                                  Citation : Pas de titre

                                  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sdc/9/2/tsubasadestiny/test/dossiers.php on line 48


                                  Ca affiche bien le texte, mais au dessus, il y a cette erreur.
                                  La ligne 48, c'est la ligne
                                  $donnees = mysql_fetch_assoc($reponse);

                                  J'en déduis donc qu'il reste une petite erreur dans la requête.

                                  Ah et je voulais demander si j'étais obligé de mettre un formulaire ?

                                  Merci.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    26 novembre 2005 à 11:34:45

                                    Le voilà:

                                    <?php
                                                    echo '<form method="post" action="dossiers.php?id_dossiers='.(int)$_GET['id_dossiers'] .'">
                                    <input type="hidden" name="valide" value="1" />
                                    <input type="submit" name="submit" value="Envoyer" /></form>'
                                    ;
                                                    if (!empty($_POST['valide']) AND ($_POST['valide']==1) AND (!empty($_GET['id_dossiers']) AND is_numeric($_GET['id_dossiers'])))
                                                    {
                                                     mysql_connect("localhost", "", "");
                                             mysql_select_db("");
                                                     
                                                     $reponse=mysql_query("SELECT * FROM dossiers WHERE id='" .(int)$_GET['id_dossiers'] . "");
                                                     $donnees = mysql_fetch_array($reponse);
                                        $reponse=mysql_query("SELECT * FROM dossiers WHERE id=".(int)$_GET['id_dossiers'])or die(mysql_error());
                                                     $donnees = mysql_fetch_assoc($reponse);
                                    echo $donnees['titre'].'<br>
                                                     <p>'
                                    .nl2br(stripslashes($donnees['contenu'])).'</p>
                                                     <div align="right">
                                                      <font face="verdana" size="2"> Ecrit par <em>'
                                    .$donnees['pseudo'].'</em>, le <em>'.date('d/m/Y H\hi', $donnees['timestamp']).'</em></font>';
                                                     }
                                                     

                                    ?>
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      26 novembre 2005 à 11:38:57

                                      tu n'a pas recopié le code de mon edit comme je te l'avais demandé :/
                                      l'erreur vien de la requette sql
                                      essay sa
                                      <?php
                                      // visite  ta page avec cette url www.tonsite.com/dossiers.php?id_dossiers=5
                                      if(!empty($_GET['id_dossiers']) AND is_numeric($_GET['id_dossiers']))
                                      {
                                                       mysql_connect("localhost", "", "");
                                                       mysql_select_db("");
                                                     
                                                       $reponse=mysql_query("SELECT * FROM dossiers WHERE id=".(int)$_GET['id_dossiers'])or die(mysql_error());
                                                       $donnees = mysql_fetch_assoc($reponse);
                                      echo '
                                          <p><img src="'
                                      .$donnees['titre'].'" alt="dossier tsubasa"/></p>
                                                       <p>'
                                      .$donnes['contenu'].'</p>
                                                       <div align="right">
                                                         Ecrit par <em>'
                                      .$donnees['pseudo'].'</em>, le <em>'.date('d/m/Y H\hi', $donnees['timestamp']).'</em>';
                                      }
                                      mysql_close();
                                      ?>

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        26 novembre 2005 à 11:46:03

                                        Ya une nouvelle erreur et cette fois le dossier ne s'affiche plus:

                                        Citation : Pas de titre

                                        Warning: mysql_close(): no MySQL-Link resource supplied in /var/www/sdc/9/2/tsubasadestiny/test/dossiers.php on line 73

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          27 novembre 2005 à 15:07:54

                                          Bonjour, j'ai réussi à régler ce problème.

                                          Merci à tous pour votre aide.
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          Afficher chaque entrée de la bdd sur une page

                                          × 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