Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur de connection base de donné

Sujet résolu
    19 mai 2019 à 10:21:51

    Bonjours j'ai une problème de connection à ma base de donné.

    voici mon code 

    <!DOCTYPE html>
    <html lang="fr">
    
     <head>
       <meta charset="utf-8">
       <title>Page affichage Prixy</title>
      <link rel="stylesheet" href="PageAffichage.css">
     </head>
     <body>
     <?php
     $connection=mysqli_connect("localhost", "root", "","lrdj");
    
    
     ?>
        <thead>
          <th>Liste des formation du projet Prixy</th>
        </thead>
      <tbody>
      <tr>
        <?php
        $TableauFormation="";
        $resultat=mysqli_query($connection,'SELECT * FROM FORMATION ');
        while ($ligne=mysqli_fetch_array($resultat,MYSQLI_BOTH))
        {
          $TableauFormation[0]=$ligne[0];
          $TableauFormation[1]=$ligne[1];
          $TableauFormation[2]=$ligne[2];
          $TableauFormation[3]=$ligne[3];
          $TableauFormation[4]=$ligne[4];
          $TableauFormation[5]=$ligne[5];
          $TableauFormation[6]=$ligne[6];
    
        }
         echo "<td>'$donneRenvoyeParLaBase'<td>"
    
         ?>
      </tr>
      </tbody>
    
    
    
    <?php  mysqli_close($connection)  ?>
    
     </body>
    </html>

    Voici le message d'erreur 

    mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\laragon\www\Client Léger\Page d'affichage.php on line 23

    • Partager sur Facebook
    • Partager sur Twitter
      19 mai 2019 à 11:16:36

      Bonjour.

      Pour commencer, ce que tu fais dans la boucle n'a aucun sens, pour deux raisons :

      La première, c'est que tu écrases à chaque tout de boucle la variable $TableauFormation

      La seconde, c'est que tu n'utilises même pas cette variable par la suite.

      Ensuite, pour t'assurer si c'est bien un problème de connexion à la base de données, tu n'as qu'à faire une condition sur la variable $connection juste après avoir utilisé la fonction mysqli_connect, de manière à afficher un message d'erreur et stopper le script.

      Par exemple :

      if (!$connection) {
          die('Connexion à la base de données échouée : ' . mysqli_connect_error());
      }

      Mais vu l'erreur qui t'es retourné, je ne crois pas que le problème vient de là.

      • Partager sur Facebook
      • Partager sur Twitter

      Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

        19 mai 2019 à 11:37:58

        Ce n'est pas un problème de connexion, c'est purement et simplement que ta requête plante. Mais pour savoir pourquoi encore faut-il récupérer l'erreur émise par le SGBD par mysqli_error, ou bien mieux, mysqli_report (cf leur doc).

        • Partager sur Facebook
        • Partager sur Twitter
          19 mai 2019 à 14:53:23

          J'ai rajouté quelque ligne pour faire un message d'erreur et voici.

          <!DOCTYPE html>
          <html lang="fr">
          
           <head>
             <meta charset="utf-8">
             <title>Page affichage Prixy</title>
            <link rel="stylesheet" href="PageAffichage.css">
           </head>
           <body>
           <?php
           $connection=mysqli_connect("localhost", "root", "","lrdj");
           if ($connection)
             {
               echo "Connection au serveur réussis";
               $ok=mysqli_select_db($connexion, 'lrdj');
                 if ($ok)
                 {
                   echo "La base a bien été sélectionner";
                 }
                 else
                 {
                   echo "Echec de connection à la base";
                 }
              }
           ?>
              <thead>
                <th>Liste des formation du projet Prixy</th>
              </thead>
            <tbody>
            <tr>
              <?php
              $TableauFormation="";
              $resultat=mysqli_query($connection,'SELECT * FROM FORMATION ');
              while ($ligne=mysqli_fetch_array($resultat,MYSQLI_BOTH))
              {
                $TableauFormation[0]=$ligne[0];
                $TableauFormation[1]=$ligne[1];
                $TableauFormation[2]=$ligne[2];
                $TableauFormation[3]=$ligne[3];
                $TableauFormation[4]=$ligne[4];
                $TableauFormation[5]=$ligne[5];
                $TableauFormation[6]=$ligne[6];
          
              }
               echo "<td>'$donneRenvoyeParLaBase'<td>"
          
               ?>
            </tr>
            </tbody>
          
          
          
          <?php  mysqli_close($connection)  ?>
          
           </body>
          </html>
          

          Le echo qui est retourné est Echec de connection à la base pourtant le nom est bon donc je ne comprend pas.

          et le while je m'en servirais plus tard pour afficher le contenue du tableau contenant le résultat de la requête 

          -
          Edité par Titoune80 19 mai 2019 à 14:55:30

          • Partager sur Facebook
          • Partager sur Twitter
            19 mai 2019 à 17:14:27

            Une erreur sur le nom de la bdd ? Plusieurs instances MySQL sur la même machine ? Le problème c'est qu'on y va totalement à l'aveuglette car il n'y a maintenant strictement aucune gestion d'erreur mysqli sur ton code. Comment veux-tu savoir pourquoi ça ne marche pas si tu ne vas pas chercher l'erreur ? (PHP ne les donnant pas par défaut)

            Tu n'as pas besoin de mysqli_select_db, le nom de ta bdd est déjà indiquée via le 4e paramètre de mysqli_connect.

            Le mysqlic_close peut être omis.

            -
            Edité par julp 19 mai 2019 à 17:21:57

            • Partager sur Facebook
            • Partager sur Twitter
              19 mai 2019 à 19:42:06

              ducoup comment je peux mettre une gestion d'erreur mysqli sur mon code ?
              • Partager sur Facebook
              • Partager sur Twitter
                19 mai 2019 à 19:56:04

                Nous te l'avons déjà dit : regarde les fonctions (ou leurs équivalents OO) mysqli_connect_error, mysqli_error et mysqli_report.

                -
                Edité par julp 19 mai 2019 à 19:56:48

                • Partager sur Facebook
                • Partager sur Twitter
                  19 mai 2019 à 20:18:27

                  Après avoir tester je n'ai plus le problème.

                  j'en ai un autre par contre 

                  <!DOCTYPE html>
                  <html lang="fr">
                  
                   <head>
                     <meta charset="utf-8">
                     <title>Page affichage Prixy</title>
                    <link rel="stylesheet" href="PageAffichage.css">
                   </head>
                   <body>
                   <?php
                   $connection=mysqli_connect("localhost", "root", "","lrdj");
                   if ($connection)
                     {
                       echo "Connection au serveur réussis";
                       $ok=mysqli_select_db($connection, 'lrdj');
                         if ($ok)
                         {
                           echo "La base a bien été sélectionner";
                         }
                         else
                         {
                           echo "Echec de connection à la base";
                         }
                      }
                  
                   ?>
                      <thead>
                        <th>Liste des formation du projet Prixy</th>
                      </thead>
                    <tbody>
                    <tr>
                      <?php
                      $res =  mysqli_query($connection, 'SELECT * FROM utilisateur')
                  
                  //recherche et affichage d'éléments liés à la requête
                  while($row = mysqli_fetch_assoc($res))
                  {
                      echo "
                      CODE : $row[CODE_UTILISATEUR] </br>
                      NOM : $row[NOM_UTILISATEUR] </br>
                      PRENOM : $row[PRENOM_UTILISATEUR] </br>
                      PSEUDO : $row[PSEUDO_UTILISATEUR	] </br>
                      ADDRESSE MAIL : $row[MAIL_UTILISATEUR] </br>
                      MOT DE PASSE : $row[MDP_UTILISATEUR] </br>
                      ";
                  }
                  
                  
                       ?>
                    </tr>
                    </tbody>
                  
                  
                  
                  <?php  mysqli_close($connection)  ?>
                  
                   </body>
                  </html>
                  

                  le message c'est Parse error: syntax error, unexpected 'while' (T_WHILE) in C:\laragon\www\Client Léger\Page d'affichage.php on line 36

                  Je ne sais pas pourquoi j'ai se problème 

                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 mai 2019 à 21:07:06

                    Un ; peut être sur la ligne du mysqli_query ?

                    Je vois que tu n'as tenu compte de rien : toujours aucune gestion d'erreur, le mysqli_select_db toujours en doublon, etc.

                    -
                    Edité par julp 19 mai 2019 à 21:07:53

                    • Partager sur Facebook
                    • Partager sur Twitter
                      19 mai 2019 à 21:09:03

                      julp a écrit:

                      Tu n'as pas besoin de mysqli_select_db, le nom de ta bdd est déjà indiquée via le 4e paramètre de mysqli_connect.

                      -
                      Edité par julp il y a environ 3 heures


                      julp a écrit:

                      Nous te l'avons déjà dit : regarde les fonctions (ou leurs équivalents OO) mysqli_connect_error, mysqli_error et mysqli_report.

                      -
                      Edité par julp il y a environ 1 heure


                      Edit: Trop lent.

                      -
                      Edité par Koyuki Tanaka 19 mai 2019 à 21:09:22

                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 mai 2019 à 22:01:05

                        Bonsoir.

                        Peux-tu m'expliquer ceci : $row[CODE_UTILISATEUR] ?

                        Et tu as ceci sur chaque ligne dans ton echo

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Face a quelqu'un pour qui l'on n'éprouve que de l'aversion et du mépris, les yeux d'un homme deviennent extrêmement froids et cruels.

                          19 mai 2019 à 22:04:04

                          julp a écrit:

                          Un ; peut être sur la ligne du mysqli_query ?

                          Je vois que tu n'as tenu compte de rien : toujours aucune gestion d'erreur, le mysqli_select_db toujours en doublon, etc.

                          -
                          Edité par julp il y a environ 1 heure


                          Etant donné que j'ai trouvé le problème en développant j'allais pas laisser ces lignes la en fait.

                          j'ai rajouté le ; et c'est bon

                          -
                          Edité par Titoune80 19 mai 2019 à 22:08:19

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Erreur de connection base de donné

                          × 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