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