Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL] Message d'ereur -> News

Sujet résolu
    2 janvier 2006 à 0:15:46

    Salut à tous,

    voilà mon problème :
    je mets en place un sytème de news sur mon site, la connection à la base de donnée se passe bien mais il indique un Message d'erreur à la ligne suivante :

    ligne 57 : $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
    while ($donnees = mysql_fetch_array($retour))

    Message d'erreur : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.2/infoscyc/www/index.php on line 57

    Merci de m'aider à résoudre cette erreur

    Bonne année à tous également. <lien url="www.infos-cyclisme.com"></lien>
    • Partager sur Facebook
    • Partager sur Twitter
      2 janvier 2006 à 0:55:52

      Ca va dans php ca je pense ....

      Sinon rajoute un ' or die(mysql_error()) ' a la fin de ta requete voir si c'est elle qui buggue

      Le Problème vient normalement de la ....
      • Partager sur Facebook
      • Partager sur Twitter
        2 janvier 2006 à 10:15:48

        Voilà exactement le code qui cause problème :

        <?php
        mysql_connect("sql8", "login", "mdp");
        mysql_select_db("news");

        $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
        while ($donnees = mysql_fetch_array($retour))
        {

        ?>

        c'est cette ligne là qui indique sur mon site un message d'erreur :

        while ($donnees = mysql_fetch_array($retour))

        Help me please
        • Partager sur Facebook
        • Partager sur Twitter
          2 janvier 2006 à 11:02:38

          Lis un peu les posts de ceux qui veulent t'aider et ajoute, comme te l'a dit Nokiateur, un or exit(mysql_error()) après ta requête.
          • Partager sur Facebook
          • Partager sur Twitter
            2 janvier 2006 à 11:08:16

            oui ..

            maintenant il me met

            Parse error: parse error, unexpected T_LOGICAL_OR in /home.2/infoscyc/www/index.php on line 58

            quand j'ai inseré le code or die(mysql_error())

            :euh:
            • Partager sur Facebook
            • Partager sur Twitter
              2 janvier 2006 à 11:32:49

              Il faut vraimenet tout te dire :
              $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5') or exit(mysql_error());


              Et d'ailleurs utilise la balise code pour afficher du code ça sera plus lisible.
              • Partager sur Facebook
              • Partager sur Twitter
                2 janvier 2006 à 11:48:00



                Ben ton joli code lisble ne fonctionne pas

                <?php
                mysql_connect("sql8", "log", "mdp");
                mysql_select_db("news");

                // On récupère les 5 dernières news
                $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5') or exit(mysql_error());
                while ($donnees = mysql_fetch_array($retour))
                {

                ?>


                Message d'erreur : No database selected

                Je sais pas quoi faire ..
                • Partager sur Facebook
                • Partager sur Twitter
                  2 janvier 2006 à 11:54:31

                  Ce n'est pas mon joli code qui ne fonctionne pas c'est le tien.

                  Réfléchis un peu et lis la doc de tant en tant : le code que je t'ai donné permet d'afficher l'erreur retournée par MySQL à savoir ici "No database selected".

                  Je pense que tu es capable de comprendre ceci non ?

                  Rajoute or exit(mysql_error()) sur ton mysql_connect et sur ton mysql_select_db je pense que l'erreur vient de là.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    2 janvier 2006 à 12:36:00

                    Oki, mais je suis vraiment un zéro moi je m'y connais pas bien donc voilà désolé si je comprends pas bien tout.

                    Cependant, si j'ai compris ce que tu as dit , avec le code que tu as donné ca devrait dire quelle est l'erreur ?

                    si oui il me met : Parse error: parse error, unexpected T_STRING in /home.2/infoscyc/www/index.php on line 55

                    Désolé si ce n'est pas ça, c'est que je comprends pas
                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 janvier 2006 à 12:51:06

                      Cela est une erreur php ce qui signifie que tu as mal modifié ton code et que tu as une erreur dans la syntaxe.

                      Redonne ton code modifié.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 janvier 2006 à 13:10:50

                        Voici le code mofifié

                        <?php
                        mysql_connect("sql8", "infoscyc", "mdp")or exit(mysql_error());
                        mysql_select_db("news") or exit(mysql_error());

                        // On récupère les 5 dernières news
                        $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5') or exit(mysql_error());
                        while ($donnees = mysql_fetch_array($retour))
                        {

                        ?>
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 janvier 2006 à 13:21:16

                          Personnellement je n'ai pas cette erreur...

                          Enfin bref pour gagner du temps, es-tu sûr que ta BASE (et non ta TABLE) se nomme news ?

                          Parce que à mon avis l'erreur vient de là.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            2 janvier 2006 à 13:32:56

                            Oui j'ai vérifié.

                            toujours le message d'erreur à propos de la même ligne. peut-être devrais je essayer de trouver une forme de script si cela existe ou si une solution existe ..
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 janvier 2006 à 13:41:16

                              Je n'ai pas cette erreur de syntaxe, c'est bizarre.

                              Tu testes ton script en local ou en ligne ? Chez quel hébergeur ?

                              Parce que si tu es en local tu devrais mettre localhost et non sql8 et si tu es en ligne, ça m'étonnerait que ta base s'appelle news.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 janvier 2006 à 13:46:40

                                Je fais ça en ligne chez ovh.be

                                ma base s'appelle infoscyc mais ca change rien j'avais corrigé et ma table s'apelle news.( même en corrigeant le nom de ma base , j'ai eu le même message).

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 janvier 2006 à 13:57:10

                                  Corrige le nom de ta base, enlève les or exit(mysql_error()) et teste à nouveau.

                                  Edit : Et si tu as toujours l'erreur que tu as donné tout à l'heure donne ton code complet.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 janvier 2006 à 14:16:42

                                    Voici le code entier de ma section News


                                    <?php
                                    mysql_connect("sql8", "infoscyc", "mdp")
                                    mysql_select_db("infoscyc")

                                    // On récupère les 5 dernières news
                                    $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5')
                                    while ($donnees = mysql_fetch_array($retour))
                                    {

                                    ?>
                                    <fieldset>
                                    <legend><span class="Style6">News | <?php echo $donnees['titre']; ?> Post&eacute;e le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></span></legend>


                                    <div class="news">
                                        <h3>
                                          <?php
                                        // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
                                        $contenu = nl2br(stripslashes($donnees['contenu']));
                                        echo $contenu;
                                        ?>
                                    </h3>
                                       
                                    </div>

                                       

                                    </fieldset>
                                    <?php
                                    } // Fin de la boucle des news
                                    ?>
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      2 janvier 2006 à 16:03:43

                                      Je me suis permis d'optimiser ton code.

                                      Si tu ne comprends pas certaines modifications n'hésite pas à me demander.

                                      <?php

                                      $link=mysql_connect('sql8', 'infoscyc', 'mdp') or exit(mysql_error());
                                      mysql_select_db('infoscyc', $link) or exit(mysql_error());

                                      $retour = mysql_query('SELECT `titre`, `timestamp`, `contenu` FROM `news` ORDER BY `id` DESC LIMIT 0, 5', $link) or exit(mysql_error());
                                      while ($donnees = mysql_fetch_array($retour))
                                        {
                                          echo '
                                      <fieldset>
                                       <legend>
                                        <span class="Style6">News | '
                                      .$donnees['titre'].' Postée le '.date('d/m/Y à H\hi', $donnees['timestamp']).'</span>
                                       </legend>
                                       <div class="news">
                                        <h3>
                                         '
                                      .nl2br(stripslashes($donnees['contenu'])).'
                                        </h3>
                                       </div>
                                      </fieldset>'
                                      ;
                                        }

                                      ?>


                                      Il n'y a pas d'erreurs PHP et les éventuels erreurs MySQL seront affichées.

                                      A part ça il y a plusieurs erreurs au niveau de ton code Xhtml :
                                      • <h3> est une balise de titre, ne l'utilise donc pas pour afficher le contenu de tes news
                                      • il me semble que <fieldset> ne se place que dans un formulaire


                                      Amicalement

                                      T@kniX
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        2 janvier 2006 à 16:45:48

                                        Merci beaucoup, le script fonctionne !

                                        Si ca te dérrange pas, je garde contact avec toi au cas où j'aurais un autre prolème :)

                                        Mais encore une chose, (www.infos-cyclisme.com) comment faire pour qu'à chaque fois que je rajoute une news un block se créé?

                                        Playmate
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          2 janvier 2006 à 19:12:52

                                          Ta boucle est exécutée pour chaque news donc tu mets ton bloc dans la boucle ainsi une nouveau bloc sera créé à chaque fois.

                                          Amicalement

                                          T@kniX
                                          • Partager sur Facebook
                                          • Partager sur Twitter

                                          [MySQL] Message d'ereur -> News

                                          × 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