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. 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. 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
      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
          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 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. 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