Notice: Undefined variable: resultat in C:

Bonjour tout le monde et merci d'avance à ceux qui voudrons me venir en aide par leurs apport à mon problème,
je suis entrain de developer 1 base de données de recherche de produits.
quand je fait 1e recherche ds la BDD elle affiche normalement mais le problème c'est que lors de l'affichage de la page il ya ce message qui s'affiche à l'endroit où est sensé s'afficher les resultats sur le produits recherché:

Notice: Undefined variable: resultat in C:\wamp\www\london_BD\index.php on line 124

Call Stack
# Time Memory Function Location
1 0.0010 150760 {main}( ) ..\index.php:0

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\wamp\www\london_BD\index.php on line 124
Call Stack
# Time Memory Function Location
1 0.0010 150760 {main}( ) ..\index.php:0
2 0.0030 158048 mysqli_fetch_array ( ) ..\index.php:124

Voici la partie de mon code qui me signale où est l'erreur et que je n'arrive pas corrigé

124: <?php while($articles= mysqli_fetch_array($resultat)){?>

<tr>
<td><?php echo $articles["nomprod"]; ?></td>
<td><?php echo $articles["prix"]; ?></td>
<td><?php echo $articles["categorie"]; ?></td>
<td><?php echo $articles["nbre"]; ?></td>
</tr>
<?php }

Vraiment si vous pouvez m'aidez à resoudre ce problème qui me tracasse depuis quelques jours

5 réponses

  1. Bonjour

    Un peu avant cette ligne 124, tu devrais avoir une ligne $resultat=mysqli_query(...
    Le problème est que cette ligne n'est pas exécutée, ou que ce n'est pas $resultat qu'il y a à gauche du =, car le message dit que la variable $resultat n'est pas définie.
    Si ça ne t'aide pas, montre le code depuis le début jusqu'à la ligne 124 (en cachant les identifiants s'il y en a)
    1
    1. merci infiniment
      0
  2. salut,

    le message te dis que $resultat est null. Il faut donc vérifier son implémentation.

    naga
    0
    1. si il ya en a, le voici:
      $resultat=mysqli_query( $connexion,$requete);
      c'est juste que j'ai oublié de le mettre
      0
      1. rajoute un teste autour histoire de vérifier tout de même :


        if($resultat=mysqli_query( $connexion,$requete))
        {
        .
        .
        .
        }
        else
        {
        echo 'erreur lors du requêtage';
        }

        0
      2. j'ai ajouté ce teste dans la ligne, le probleme est que ça n'a changé rien du tout, le navigateur signale l'erreur est juste maintenant au niveau du teste, et c'est le sinon qui s'affiiche voici le code:

        (ça c'est la partie de la connexion a la BDD)

        <?php
        $connexion=mysqli_connect("localhost","root","", "londonbd");
        if (mysqli_connect_errno()) {
        printf("Échec de la connexion : %s\n", mysqli_connect_error());
        exit();
        }

        if(isset($_POST['bouton']))
        {
        $nomprod= htmlentities($_POST['nomprod']);

        $requete .=("SELECT nomprod,prix,categorie,nbre FROM articles WHERE nomprod LIKE '%".$nomprod."%' ");

        }
        ?>

        (ici c'est la partie du tableau d'affichage)

        <p>
        <table width="420" border="1" cellspacing="0" cellpadding="5">
        <tr>
        <td><strong>Nom</strong></td>
        <td><strong>Prix</strong></td>
        <td><strong>Rayon</strong></td>
        <td><strong>Quantité</strong></td>
        </tr>
        <?php
        125: if($resultat=mysqli_query( $connexion,$requete))
        {
        while($articles= mysqli_fetch_array($resultat)){?>

        <tr>
        <td><?php echo $articles["nomprod"]; ?></td>
        <td><?php echo $articles["prix"]; ?></td>
        <td><?php echo $articles["categorie"]; ?></td>
        <td><?php echo $articles["nbre"]; ?></td>
        </tr>
        <?php }

        }else
        {

        echo 'erreur lors du requêtage';
        }
        mysqli_close($connexion);
        ?>

        </table>

        <br></p>

        voilà ce qui s'affiche

        Notice: Undefined variable: requete in C:\wamp\www\london_BD\index.php on line 125
        Call Stack
        # Time Memory Function Location
        1 0.0010 151192 {main}( ) ..\index.php:0

        ( ! ) Warning: mysqli_query(): Empty query in C:\wamp\www\london_BD\index.php on line 125
        Call Stack
        # Time Memory Function Location
        1 0.0010 151192 {main}( ) ..\index.php:0
        2 0.0020 158488 mysqli_query ( ) ..\index.php:125

        erreur lors du requêtage
        0
      3. ok

        écris

        $requete = "SELECT nomprod,prix,categorie,nbre FROM articles WHERE nomprod LIKE '%".$nomprod."%' "; 
        


        et ca ne devrai plus poser problème (si $nomprod existe bien).
        0
      4. je viens d'echangé mais ça ne change pas le message s'affiche toujours. franchement je sais plus quoi pensé, c'est le même message qui s'affiche

        Notice: Undefined variable: requete in C:\wamp\www\london_BD\index.php on line 124
        Call Stack
        # Time Memory Function Location
        1 0.0010 151192 {main}( ) ..\index.php:0

        ( ! ) Warning: mysqli_query(): Empty query in C:\wamp\www\london_BD\index.php on line 124
        Call Stack
        # Time Memory Function Location
        1 0.0010 151192 {main}( ) ..\index.php:0
        2 0.0120 158488 mysqli_query ( ) ..\index.php:124
        0
      5. pourtant mon code est bien ecris selon que j'ai appris, l'erreur est signalé à

        124: if($resultat=mysqli_query( $connexion,$requete))
        selon le navigateur c'est là qu'il ya une erreur
        0
    2. Tu as aussi oublié de mettre les 123 lignes précédentes.
      Le message ne laisse aucun doute : ta variable $resultat n'est pas définie, donc soit la ligne n'est pas vraiment celle que tu as mise, soit elle n'est pas exécutée pour une raison quelconque.
      0
      1. mais comment definir une variable en PHP, à ce que je sache, la declaration d'une variable en PHP très simplement en l'ecrivant, il n'ya pas la notion de type dans le PHP, on declare et après on l'utilise directement.
        Peut tu être un peu plus claire? please
        0
        1. 1 - Non, une variable ne se déclare pas simplement en l'écrivant. C'est en lui affectant une valeur qu'on la crée. Je précise, en supposant que $truc n'existe pas encore :
          $truc=3; est correct et déclare bien une nouvelle variable
          if ($truc==3) est une erreur, pas une déclaration de variable.

          2 - Si, il y a une notion de type en PHP. Ce qui ne veut pas dire qu'on doit déclarer une variable avec son type : faut pas tout mélanger.

          Si tu ne veux pas donner le code, je ne pourrai pas t'aider. Mais je constate que dans ton message de 16h29, ce n'est plus $resultat mais $requete qui est non défini : les messages d'erreur ont changé.
          Tu as changé quelque chose dans ton code, et tant mieux si ça avance.
          0
        2. voici le code:

          <?php
          $connexion=mysqli_connect("localhost","root","", "londonbd");
          if (mysqli_connect_errno()) {
          printf("Échec de la connexion : %s\n", mysqli_connect_error());
          exit();
          }

          if(isset($_POST['bouton']))
          {
          $nomprod= htmlentities($_POST['nomprod']);

          $requete = "SELECT nomprod,prix,categorie,nbre FROM articles WHERE nomprod LIKE '%".$nomprod."%' ";

          $resultat=mysqli_query( $connexion,$requete);
          }
          ?>

          <p>
          <table width="420" border="1" cellspacing="0" cellpadding="5">
          <tr>
          <td><strong>Nom</strong></td>
          <td><strong>Prix</strong></td>
          <td><strong>Rayon</strong></td>
          <td><strong>Quantité</strong></td>
          </tr>
          <?php
          if($resultat=mysqli_query( $connexion,$requete))
          {
          while($articles= mysqli_fetch_array($resultat)){?>

          <tr>
          <td><?php echo $articles["nomprod"]; ?></td>
          <td><?php echo $articles["prix"]; ?></td>
          <td><?php echo $articles["categorie"]; ?></td>
          <td><?php echo $articles["nbre"]; ?></td>
          </tr>
          <?php }

          }else
          {

          echo 'erreur lors du requêtage';
          }

          mysqli_close($connexion);
          ?>

          </table>

          <br></p>

          l'erreur est signalé au niveau de :

          while($articles= mysqli_fetch_array($resultat)){?>
          0
        3. Et que dit exactement ce message d'erreur ? Car au vu de ce code, j'ai vraiment du mal à croire que la variable $resultat soit non définie.
          Si c'est $requete, suis les explications de nagashima.
          0
        4. Même moi-même jusqu'alors çq m'etonne qu'il ait une erreur, j'en viens à pensé que c'est peut être un pb de compatibilité avec les naviguateurs, voici ce que dit l'erreur:

          Notice: Undefined variable: requete in C:\wamp\www\london_BD\index.php on line 124
          Call Stack
          # Time Memory Function Location
          1 0.0010 151192 {main}( ) ..\index.php:0

          ( ! ) Warning: mysqli_query(): Empty query in C:\wamp\www\london_BD\index.php on line 124
          Call Stack
          # Time Memory Function Location
          1 0.0010 151192 {main}( ) ..\index.php:0
          2 0.0120 158488 mysqli_query ( ) ..\index.php:124
          0
        5. Aucun rapport avec le navigateur.
          Ton premier message disait : Undefined variable: resultat. Maintenant tu dis : Undefined variable: requete. Ça n'a aucun rapport.

          Ta variable $requete est effectivement non définie et nagashima t'a déjà bien répondu à ce sujet.
          0