[Réglé] Comment faire pour tester une requête ?

Nouveau WRInaute
bonjour j'aimerais tester si le resultat de ma requete est vide)s'il y a pas d'enreigistrement dans la tabe) et s'il est pas vide j'affiche un lien.. s'il est vide j'affiche rien
voici mon code:

$reponse = mysql_query("SELECT * FROM famille ORDER BY nom");
<? while ($donnees = mysql_fetch_array($reponse))
{?>

<td width="5%" height="34"><? if ($donnees['nom']==""){}else{?><a href="/shop/admin/modifiertout.php?choix=7&fam=<? echo $donnees['nom'] ?>&idp=<? echo $donnees['id'] ?>" ><img src="/webdata/graph/sous-categorie.gif" border="0"></a><? }?></td>

comment je peux faire le test? merci d'avance!
 
Nouveau WRInaute
merci de repondre! :wink: mais je l'ai mis comme ça mais ca ne marche pas:
<? while ($donnees = mysql_fetch_array($reponse))?>

<table width="86%" border="0" background="../../../webdata/graph/degrade_vert.jpg">
<tr>
<td width="13%" height="34">
<? $vide = mysql_numrows($reponse);
if ($vide==0){}else{?>
<a href="/shop/admin/modifiertout.php?choix=7&fam=<? echo $donnees['nom'] ?>&idp=<? echo $donnees['id'] ?>" ><img src="/webdata/graph/sous-categorie.gif" border="0"></a>
<a href="/shop/admin/ajoutertout.php?choix=5&fam=<? echo $donnees['nom'] ?>&idp=<? echo $donnees['id']?>" >
<img src="/webdata/graph/ajout.gif" border="0"></a>
<? }?>
 
A
Anonymous
Guest
c'est l'inverse qu'il faut faire
Code:
<table width="86%" border="0" background="../../../webdata/graph/degrade_vert.jpg"> 
<?
$reponse = mysql_query("SELECT * FROM famille ORDER BY nom"); 
$nrows = mysql_numrows($reponse); 
if($nrows == 0){
  // coe aucun enregistrement
} else {
	while ($donnees = mysql_fetch_array($reponse)) {
?> 
		<tr> 
		<td width="13%" height="34"> 
		<a href="/shop/admin/modifiertout.php?choix=7&fam=<? echo $donnees['nom'] ?>&idp=<? echo $donnees['id'] ?>" ><img src="/webdata/graph/sous-categorie.gif" border="0"></a> 
		<a href="/shop/admin/ajoutertout.php?choix=5&fam=<? echo $donnees['nom'] ?>&idp=<? echo $donnees['id']?>" > 
		<img src="/webdata/graph/ajout.gif" border="0"></a>
		</td>
                                 <td>...</td></tr>
<?
	}
}
?>
</table>

Test numrows puis boucle de récupération des enregistrements

EDITE: pense à fermer les balises TD TR
 
Nouveau WRInaute
ça m'affiche toujours les icones... mais en fait moi j'ai 2 requettes, la 1ere pour tout le tableau et la 2eme pour cette celulle depuis laquelle je veux faire le test et je crois que c pour ça qu'il fait pas le test, voilà mes modifs:
mysql_connect("localhost", "root", "...."); // Connexion à MySQL
mysql_select_db("idinfo_shop"); // Sélection de la base
// On est connectés, on peut travailler sur la BDD
$reponse = mysql_query("SELECT * FROM famille ORDER BY nom");//1ere requette
<? while ($donnees = mysql_fetch_array($reponse))
{?>

<table width="86%" border="0" background="../../../webdata/graph/degrade_vert.jpg">
<tr>

<td width="13%" height="34">
<?
$rep = mysql_query("SELECT * FROM sous_famille ORDER BY nom"); //2eme requette
$nrows = mysql_numrows($rep);
$do = mysql_fetch_array($rep);
if($nrows == 0){
} else {/*$donnees = mysql_fetch_array($reponse);*/
?><a href="/shop/admin/modifiertout.php?choix=7&fam=<? echo $donnees['nom'] ?>&idp=<? echo $donnees['id'] ?>" ><img src="/webdata/graph/sous-categorie.gif" border="0"></a>
<a href="/shop/admin/ajoutertout.php?choix=5&fam=<? echo $donnees['nom'] ?>&idp=<? echo $donnees['id']?>" ><img src="/webdata/graph/ajout.gif" border="0"></a>
<?
}
?>
</td>
<td width="16%"><? echo $donnees['nom']; ?></td>
<td width="40%"><? echo $donnees['Description']; ?></td>
</tr>
</table>
}?
 
A
Anonymous
Guest
roblescriso a dit:
$rep = mysql_query("SELECT * FROM sous_famille ORDER BY nom"); //2eme requette

cette requête renvoi tout les enregistrements de la table sous_famille, donc s'il y au moins un enregistrement dans la table (ce qui doit être le cas), mysql_numrows renverra toujours une valeur > 0.

Je suppose que tu veux faire
Code:
$nom_produit = $donnees['nom'];
$rep = mysql_query("SELECT * FROM sous_famille WHERE nom='$nom_produit')

Et n'appelles pas $do = mysql_fetch_array($rep); si tu n'utilise pas les données de l'enregistrement.

Un peu fouilli le code :wink:
 
Discussions similaires
Haut