Mysql_fetch_array
Mickael86480
-
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Reivax962 Messages postés 3672 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai toujours cette erreur et je ne sais pas comment la résoudre:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
voici mon code:
if(isset($_POST['rec']) ) {
$Nomcommerce = $_POST['nom'];
$Requeteaffichage = "SELECT *
FROM t1
WHERE nom_com = '".$Nomcommerce."'";
$Recherchercommerce = (mysql_query($Requeteaffichage) or die(mysql_error()));
if ($Recherchercommerce >= 1){
while ($Donnees = mysql_fetch_array($Recherchercommerce)){
if ($Donnees['nom_com'] == $Nomcommerce) {
$Requeteafficher = "SELECT nom_com, adresse, activite, tel, mail, site, horaire
FROM t1
WHERE nom_com = '".$Nomcommerce."'";
$Commercetrouve = (mysql_query($Requeteafficher) or die(mysql_error()));
while ($data = mysql_fetch_array($Commercetrouve)){
echo ("<img id=fl src=img/commerces/".$data['id'].".jpg border=0 >");
echo ("Nom du commerce : <br>" . $data['nom_com']);
echo ("Adresse : <br>" . $data['adresse']);
echo ("Activité : <br>" . $data['activite']);
echo ("Téléphone : <br>" . $data['tel']);
echo ("Email : <br>" . $data['mail']);
echo ("Site internet : <br><br>" . $data['site']);
echo ("Horaire : <br> " . $data['horaire']);
}
}
else if($Donnees['nom_com'] != $Nomcommerce)
echo("Le commerce choisit n'est pas dans la base de données");
}
}
else echo("Le commerce demandé ne fait pas parti de la base de données");
}
merci d'avance
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
voici mon code:
if(isset($_POST['rec']) ) {
$Nomcommerce = $_POST['nom'];
$Requeteaffichage = "SELECT *
FROM t1
WHERE nom_com = '".$Nomcommerce."'";
$Recherchercommerce = (mysql_query($Requeteaffichage) or die(mysql_error()));
if ($Recherchercommerce >= 1){
while ($Donnees = mysql_fetch_array($Recherchercommerce)){
if ($Donnees['nom_com'] == $Nomcommerce) {
$Requeteafficher = "SELECT nom_com, adresse, activite, tel, mail, site, horaire
FROM t1
WHERE nom_com = '".$Nomcommerce."'";
$Commercetrouve = (mysql_query($Requeteafficher) or die(mysql_error()));
while ($data = mysql_fetch_array($Commercetrouve)){
echo ("<img id=fl src=img/commerces/".$data['id'].".jpg border=0 >");
echo ("Nom du commerce : <br>" . $data['nom_com']);
echo ("Adresse : <br>" . $data['adresse']);
echo ("Activité : <br>" . $data['activite']);
echo ("Téléphone : <br>" . $data['tel']);
echo ("Email : <br>" . $data['mail']);
echo ("Site internet : <br><br>" . $data['site']);
echo ("Horaire : <br> " . $data['horaire']);
}
}
else if($Donnees['nom_com'] != $Nomcommerce)
echo("Le commerce choisit n'est pas dans la base de données");
}
}
else echo("Le commerce demandé ne fait pas parti de la base de données");
}
merci d'avance
1 réponse
Bonjour,
On va pouvoir clarifier les choses en simplifiant ton code, qui me parait assez redondant sur quelques points.
Essaie de le remplacer par le code qui suit :
Ton problème venait de ton test « if ($Recherchercommerce >= 1) », car cette variable ne contient pas le nombre de ligne trouvées...
Ensuite, tu fais deux fois les mêmes requêtes, dont l'une au sein d'une boucle while, ce qui te donnerait un grand nombre de fois les mêmes résultats. Une seule requête suffit.
Un dernier point que je n'ai pas corrigé dans ton code, c'est dans l'affichage des résultat, il manque des <br> ou des <p> pour que ce soit propre... Mais tu le verras très vite.
Xavier
On va pouvoir clarifier les choses en simplifiant ton code, qui me parait assez redondant sur quelques points.
Essaie de le remplacer par le code qui suit :
if(isset($_POST['rec'])) { $Nomcommerce = $_POST['nom']; $Requeteaffichage = "SELECT nom_com, adresse, activite, tel, mail, site, horaire FROM t1 WHERE nom_com = '$Nomcommerce'"; $Recherchercommerce = mysql_query($Requeteaffichage) or die(mysql_error()); if (mysql_num_rows($Recherchercommerce) >= 1) { while ($Donnees = mysql_fetch_array($Recherchercommerce)) { echo ("<img id=fl src=img/commerces/".$Donnees['id'].".jpg border=0 >"); echo ("Nom du commerce : <br>" . $Donnees['nom_com']); echo ("Adresse : <br>" . $Donnees['adresse']); echo ("Activité : <br>" . $Donnees['activite']); echo ("Téléphone : <br>" . $Donnees['tel']); echo ("Email : <br>" . $Donnees['mail']); echo ("Site internet : <br><br>" . $Donnees['site']); echo ("Horaire : <br> " . $Donnees['horaire']); } } else echo("Le commerce demandé ne fait pas parti de la base de données"); }
Ton problème venait de ton test « if ($Recherchercommerce >= 1) », car cette variable ne contient pas le nombre de ligne trouvées...
Ensuite, tu fais deux fois les mêmes requêtes, dont l'une au sein d'une boucle while, ce qui te donnerait un grand nombre de fois les mêmes résultats. Une seule requête suffit.
Un dernier point que je n'ai pas corrigé dans ton code, c'est dans l'affichage des résultat, il manque des <br> ou des <p> pour que ce soit propre... Mais tu le verras très vite.
Xavier