Page 1 sur 1

Probleme de requete imbriquée

Posté : 05 sept. 2006, 17:39
par fabien14
Bonjour

J'ai 2 requete imbriquer et je n'arrive pas a lui dire que si pas de resutalt alors afficher "AUCUNE" sinon afficher les villes

<div id="contenu">

Code : Tout sélectionner

<? $result1 = mysql_query("SELECT * FROM ville"); while($rowc = mysql_fetch_row($result1)){ $idc = $rowc[0]; $nomc = $rowc[1]; echo "<b>$nomc</b>"; $result = mysql_query("SELECT * FROM $table WHERE ville='$idc' "); while($row = mysql_fetch_row($result)){ $id = $row[0]; $nom = $row[3]; echo "<a href=\"index.php?dest=resto&p=$p&rub=$rub&idp=$id&a=1\">$nom</a>, "; }} ?> </div>
UN exemple

Ville1
> rqd1, ghfgh rdgdf, redsf1,

Ville 2
> dfdf, gfd,

Ville3
> AUCUNE -si la ville 3 n'as pas de resultat alors afficher "aucune"

Merci de votre aide.
J'espere avoir été assez clair ! :?

Posté : 05 sept. 2006, 17:41
par zeus
Regarde du côté de la fonction mysql_num_rows(). Elle te permet de savoir combien de lignes a retourné une requete.

A partir de là, tu devrais pouvoir savoir si une requete n'a pas retourné de résultats ;)

Posté : 05 sept. 2006, 17:50
par fabien14
J'ai regardé mais j'ai rien trouver qui m'aider

j'ai essayer ceci mais ca marche pas

Code : Tout sélectionner

if (!result) { echo "AUcune"; } else { echo "<a href=\"index.php?dest=resto&p=$p&rub=$rub&idp=$id&a=1\">$nom</a>, ";
Je pencherai plus a si resultat alors afficher sinon afficher ceci

si qlq peu aider :)

Merki

Posté : 05 sept. 2006, 17:52
par charabia
Regarde du côté de la fonction mysql_num_rows(). Elle te permet de savoir combien de lignes a retourné une requete.

A partir de là, tu devrais pouvoir savoir si une requete n'a pas retourné de résultats ;)
As-tu fais ce que zeus t'as dit ? A savoir faire une recherche sur mysql_num_rows() ? Je ne vois rien de tel dans ton code.

Posté : 05 sept. 2006, 17:58
par fabien14
Je viens de regarder ... mais je comprend pas trops le principe enfaite.

Posté : 05 sept. 2006, 18:05
par zeus
mysql_num_rows() te donnes le nombre de lignes retournées par une requete.
//construction de la requete
$str_requete = "SELECT * FROM table";

//Execution de la requete
$o_result = mysql_query($str_requete);

//$nb_row contient le nombre de lignes retournées par la requete
$nb_row = mysql_nb_rows($str_requete);
Ensuite, l'idée, c'est que tu récupere le nombre de lignes retournées. S'il n'y en a pas, tu affiches "Aucune" sinon tu parcours les résultats pour afficher ces lignes.

Actuellement, tu affiches les lignes si la requete a réussi. Et une requete qui ne retourne pas de résultats à tout de même réussi ;)

Posté : 05 sept. 2006, 18:17
par Invité
A je commence a comprendre cepandant j'ai fait comme ceci et j'ai ce message :

Code : Tout sélectionner

Fatal error: Call to undefined function: mysql_nb_rows()

Posté : 05 sept. 2006, 18:19
par charabia
A je commence a comprendre cepandant j'ai fait comme ceci et j'ai ce message :

Code : Tout sélectionner

Fatal error: Call to undefined function: mysql_nb_rows()
Mmmmmhhh

mysql_num_rows()

Posté : 05 sept. 2006, 18:28
par fabien14
Voila ca marche :)

Merci bcp

vous pouvez mettre resolu :).

Posté : 05 sept. 2006, 18:45
par zeus
//$nb_row contient le nombre de lignes retournées par la requete
$nb_row = mysql_nb_rows($str_requete);
Mea Culpa, c'est de ma faute