Mysql_fetch_array()

Résolu
Bonjour,

j'ai cette erreur

mysql_fetch_array() expects parameter 1 to be resource, boolean given

avec se script
<?php
require_once('../lib/url_fonctions.php');

$conn=db_connect();
$result=$conn->query("SELECT *FROM equipe WHERE nomequipe")or die(mysql_error());
$ligne=mysql_fetch_array($result);

echo '<table width="650" border="3" cellpadding="5" cellspacing="0" bordercolor="#666666">';
echo '<tr bgcolor="#CCCCCC">';
echo '<th> Equipe </th>';

$nb=0;
while($ligne=mysql_fetch_array($result)) {

$nb++;

$nomequipe=$ligne['nomequipe'];

echo'<tr>';
echo '<td align="center">'.$nb.'</td>';
echo '<td align="center">'.$nomequipe.'</td>';
echo'</tr>';
}
echo '<table>';

?>


merci

6 réponses

Résumé de la discussion

Le problème central concerne l'erreur mysql_fetch_array() expects parameter 1 to be resource, boolean given dans un script PHP qui exécute une requête SQL incomplète sur la table equipe sans condition WHERE correcte. Plusieurs réponses suggèrent de corriger la requête en ajoutant une clause WHERE pertinente et d'utiliser correctement le résultat de la requête avec mysql_fetch_array(), afin d'éviter d'appeler la fonction sur un booléen. Certaines interventions insistent que la clause WHERE est vide ou mal formulée, ce qui renvoie un booléen et empêche d’obtenir les lignes, tout en conseillant de vérifier la connexion et l’utilisation correcte de mysql_fetch_array.

Bobot (l’IA à votre service)
  1. bien oui je comprend , pas de souci pour sa merci
    pas besoin de me dire que je cherche a avoir raison alors que je cherche a comprendre ....

    mais grâce a se que tu viens de me dire je comprend mieux merci

    sinon toujours la même erreur pour
     mysql_fetch_array()
    0
    1. Contributeur
      Tu peux me remettre ton code entre balise "code" s'il te plait? Et me préciser la ligne à laquelle apparait ton erreur?
      0
    2. Contributeur
      Met toute la boucle "while" en commentaires (avant le while tu met /* et après l'accolade de fermeture, tu mets */
      Et tu met
      "echo $result";
      après.
      0
    3. sa me donne une autre erreur

      Catchable fatal error: Object of class mysqli_result could not be converted to string in
      line 26

      qui est la ligne avec echo $result ; je pense que sa doit venir de $result
      0
    4. Contributeur
      C'est bien ça ton code?
      <?php
      require_once('../lib/url_fonctions.php');
      
      $conn=db_connect();
      
      $result=$conn->query("SELECT nomequipe from equipes")or die(mysql_error());
      
      
      	echo '<table width="650" border="3" cellpadding="5" cellspacing="0" bordercolor="#666666">';
      	echo '<tr bgcolor="#CCCCCC">';
      	echo '<th> Equipe </th>';
      
      $nb=0;
      echo $result;
      /*  while($ligne=mysql_fetch_array($result)) {
      	
          $nb++;
                                 
          $nomequipe=$ligne['nomequipe'];
      	
      	echo'<tr>';
      	echo '<td align="center">'.$nb.'</td>';
      	echo '<td align="center">'.$nomequipe.'</td>';
             echo'</tr>';
      }*/
      echo '<table>';
      
      ?>
      0
    5. oui
      0
  2. Contributeur
    Bref, la requête n'a donc pas de WHERE.
    Cette clause sert à choisir les lignes. Par exemple afficher les lignes "WHERE nomequipe="ville1".
    Si tu veux sélectionner des colonnes spécifiques, la requête devient:
    SELECT nomequipe FROM equipe

    Tu saisis un peu mieux?

    Après, il y a peut-être d'autres erreurs, mais on les résoud une par une. Pour moi, celle-ci est un bon point de départ, on a plus qu'a attendre le message d'erreur suivant =)
    1
    1. oui c'est mon code .des lacunes c'est normal je suis que amateur niveau php/mysql

      je voudrait afficher se que j'ai dans ma base
      0
      1. Contributeur
        Tout? Ou uniquement ce que tu as dans la table "nomequipe"?
        0
      2. j'ai ma table equipe avec plusieurs entré mais pour le moment je voudrait juste nomequipe
        0
      3. Contributeur
        Et bien ta requête n'a pas besoin de la clause "WHERE".
        SELECT * FROM nomequipe

        Et puis voila =)
        0
      4. non car dans ma table equipe il y a nomequipe donc je doit forcement mettre un where

        SELECT * FROM equipe WHERE nomequipe  
        0
      5. Contributeur
        T'as essayé sans le "WHERE" ?
        T'es sur de savoir à quoi il sert? C'est un filtre... Si tu veux rien filtrer, tu met rien..
        Si tu crois déjà tout savoir, tu demandes pas d'aide...
        0
    2. Contributeur
      Jusque là, c'est normal...
      Si tu supprime ton code, t'auras même plus d'erreur, t'as trouvé la solution!

      Vu qu'apparament t'as des lacunes.. on va commencer par deux questions simples..:
      C'est TON code?
      Tu veux faire quoi avec ce code?
      0
      1. oui effectivement j'avais éssayer avec
        nomequipe='".$nomequipe."'   


        mais sa ne fonctionnai pas non plus

        ca j'ai une erreur
         Undefined variable: nomequipe
        0
        1. Contributeur
          Bonjour,

          Tu as une balise "code" => "<>" pour que ton code apparaisse mieux, plutôt que d'utiliser le gras.

          Sinon, ta requête ne rime à rien:
          SELECT *FROM equipe WHERE nomequipe


          Sélectionner toutes les colonnes dans le table "equipe", des entrées où "nomequipe"
          Il faudrait dire "WHERE nomequipe="quelquechose"
          0