Problème mysql_fetch_array

Bonjour, jei reçoit un message d'erreur du type
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:/www/......
Unknown column 'id' in 'field list'

le code est le suivant:

<table width="100%" class=tr>
<tr class=mes bgcolor="<?=COLORH?>" align=center><td><?=$w[118]?></td><td><?=$w[132]?></td­­><td><?=$w[120]?></td><td><?=$w[87]?></td></tr&­g­t;
<?$tmp=mysql_query("SELECT id, fname, gender, birthday, pic1, pic2, pic3 FROM ".C_MYSQL_MEMBERS." WHERE status >= '7' order by regdate DESC limit ".C_LASTREG);
$color='';
while($i=mysql_fetch_array($tmp)) {
$color = ($color == COLOR4) ? COLOR3 : COLOR4;
$name = (trim($i['fname']) == '') ? $i['id'] : $i['fname'];
$ph = (($i['pic1'] == '')&&($i['pic2'] == '')&&($i['pic3'] == '')) ? $w[111] : $w[112];
$age=abs(mysql2data($i['birthday'],1));
echo "<tr class=desc bgcolor=\"".$color."\" align=center><td><a href=\"view.php?l=".$l."&id=".$i['id']."\" class=desc>".$name."</a></td><td>".$wg[$i['gender']].&­­quot;</td><td>".$age."</td><td>".$ph."</td­&­gt;</tr>";}
$tmp=mysql_query("SELECT count(id) as total FROM ".C_MYSQL_MEMBERS." WHERE status >= '7'") or die(mysql_error());
$rows=mysql_fetch_array($tmp);$usc=$rows['total'];?>
</table>

Est-ce quelqu'un aurait une idée sur l'erreur
Merci d'avance

--
http://diablesserencontre.com
Configuration: Windows XP
Firefox 2.0.0.14

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour ManuDog,

    Remplacer la fonction "mysql_fetch_array()" par la fonction "mysql_fetch_assoc()" doit solutionner votre problème.
    "mysql_fetch_array()" renvoie un tableau indicé de 0 à n duquel vous devez utiliser la syntaxe "$i[0]" pour extraire la valeur du premier champ, alors que "mysql_fetch_assoc()" renvoie un tableau associatif duquel vous pouvez extraire les valeurs en utilisant la syntaxe "$i['monPremierChamp']".

    En espérant vous avoir aidé.

    Cordialement,
    BartLogan.
    1. salut BartLogan
      ça me met exactement le même problème en changement se que tu m'as proposer
      est-ce que sa pourrait venir de mon tableau qui aurai une erreur?
      merci
      1. Vraisemblablement, il manque le script de connection à la base de données MySQL.
        Essayez d'adapter ce code à vos besoins :

        <?php
        // on se connecte à MySQL
        $db = mysql_connect('localhost', 'login', 'password');

        // on sélectionne la base
        mysql_select_db('nom_de_la_base',$db);

        // on crée la requête SQL
        $sql = 'SELECT nom,prenom,statut,date FROM famille_tbl';

        // on envoie la requête
        $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

        // on fait une boucle qui va faire un tour pour chaque enregistrement
        while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
        echo '<b>'.$data['nom'].' '.$data['prenom'].'</b> ('.$data['statut'].')';
        echo ' <i>date de naissance : '.$data['date'].'</i><br>';
        }

        // on ferme la connexion à mysql
        mysql_close();
        ?>

        Source extraite du site à 'URL suivante : http://www.phpdebutant.org/article66.php
    2. merci pour le site
      jvait voir ça
      merci pour ton coup de main
      jte tient au courant