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

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

roblescriso
Nouveau WRInaute
 
Messages: 33
Inscription: Mer Avr 20, 2005 12:18

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

Message le Ven Avr 22, 2005 7:15

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!


Blini
WRInaute passionné
WRInaute passionné
 
Messages: 506
Inscription: Lun Nov 29, 2004 8:59

Message le Ven Avr 22, 2005 7:31

mysql_numrows($reponse) te renverra 0 si c'est vide.

roblescriso
Nouveau WRInaute
 
Messages: 33
Inscription: Mer Avr 20, 2005 12:18

Message le Ven Avr 22, 2005 7:40

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>
<? }?>

Invité
 

Message le Ven Avr 22, 2005 8:08

c'est l'inverse qu'il faut faire
Code: Tout sélectionner
<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

roblescriso
Nouveau WRInaute
 
Messages: 33
Inscription: Mer Avr 20, 2005 12:18

Message le Ven Avr 22, 2005 9:08

ç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>
}?

Invité
 

Message le Ven Avr 22, 2005 9:45

roblescriso a écrit:$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: Tout sélectionner
$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:

roblescriso
Nouveau WRInaute
 
Messages: 33
Inscription: Mer Avr 20, 2005 12:18

Message le Ven Avr 22, 2005 10:00

:D voilà mnt ca marche bien! :wink: merci bc pour votre aide :lol:


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Website Optimizer, Google SearchMash

  • Test de redirection
    Cet outil vous permet de tester la validité d'un lien pour le référencement. Il vous indique la nature du lien (lien en dur, redirection bien gérée par les moteurs ou redirection mal gérée par les moteurs).
  • Déterminer l'âge d'un site
    Cet outil vous permet de connaître une estimation de l'ancienneté d'un site : il fournit la date à laquelle Google l'a indexé la première fois (et la même chose pour archive.org).


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités