Requete

Répondre
Suta
le 07/03/2006 à 18:15
Suta
Bonjour,

jai une requete sql :


$sql = 'SELECT id, auteur, titre, date, texte_notes, groupe FROM notes WHERE id="'.$_GET['id_notes'].'" AND (groupe = "'.$_SESSION['groupe'].'" OR groupe = "visiteur" OR groupe = "membre")';


je voudrai faire en sorte que si il n'y a pas de resultat alors il y a un message qui s'affiche

donc j'utlise la fonction "if"

mais comment dire "if (pas de résultat pour la requete)" ???

merci pour votre aide ;)
jackbocar
le 07/03/2006 à 18:55
jackbocar
Bonjour,

Tu dois faire une chose de ce genre là :

$sql = 'SELECT count(*) FROM Ta_Table';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$enr = mysql_fetch_array($resultat);

if (($nbtotal = $enr[0]) == 0) {
echo '<b>Aucune infos trouvée</b>';
}

Je ne suis pas un pro, mais essaie ces lignes.

Jack Bocar
LA GLOBULE
le 07/03/2006 à 20:52
LA GLOBULE
<?php
$sql = 'SELECT id, auteur, titre, date, texte_notes, groupe FROM notes WHERE id="'.$_GET['id_notes'].'" AND (groupe = "'.$_SESSION['groupe'].'" OR groupe = "visiteur" OR groupe = "membre")';
$req = mysql_query($sql) or die (mysql_error());

$nb_resultat = mysql_num_rows($req);

if ($nb_resultat == 0) {
// pas de resultat
}
else {
//...
}
?>


Par exemple.
Suta
le 07/03/2006 à 23:33
Suta
merci :)

jy avait pensé mais je ne sait pas pourquoi j'avai quand meme un doute...

aurevoir
Bzh
le 08/03/2006 à 18:13
Bzh
Ou bien tout gérer en même temps sans utilisé de fonctions en plus des fonctions habituelles:

<?php
$sql = 'SELECT id, auteur, titre, date, texte_notes, groupe FROM notes WHERE id="'.$_GET['id_notes'].'" AND (groupe = "'.$_SESSION['groupe'].'" OR groupe = "visiteur" OR groupe = "membre")';
$req = mysql_query($sql) or die (mysql_error());


if ( $resultats = mysql_fetch_array($req) ) {
//Cela veut dire que la requette à tourné au moin UN résultat
//Donc on l'affiche


//////////////////////////////////////////////////////
//Puis on lance la boucle habituelle pour les autres résultats
//////////////////////////////////////////////////////
while ( $resultats = mysql_fetch_array($req) ) {
//On affiche de la même façon les résultats

}
//////////////////////////////////////////////////////
//Fin de la boucle
//////////////////////////////////////////////////////
}
else {
//Notre requette ne retourne AUCUN résultat, donc tu affiches ton message...

}
?>


Bye...
LA GLOBULE
le 08/03/2006 à 18:47
LA GLOBULE
Ouais, mais c'est pas pratique une telle solution.

Pourquoi ?
Parce que tu auras le meme code dans le if et dans le while, donc si tu dois changer quelque chose, tu devras le changer à deux endroits :/
Bzh
le 08/03/2006 à 21:56
Bzh
Oui ! c'est vrai !

Tout dépend de la façon dont le script est écrit !

Si la POO et la prog par fonctions sont mise en avant pas de souci, Un seul endroit pour modifier le code.

Il y a une rêgle simple à respecter lorsque l'on developpe une appli: jamais deux fois le même code.

Les fonctions et les objects sont donc là pour ça...

Mais dans la façon dont j'ai écris le script ci-dessu c'est vrai que c'est pas terrible. C'étais simplement pour montrer une autre solution.
Bzh
le 08/03/2006 à 22:01
Bzh
Mince j'avais pas ça =>
$sql = 'SELECT count(*) FROM Ta_Table';


Je trouve inscroyable de voir encore ça !!! Nikel pour plomber sa bdd !!!

$sql = 'SELECT count(le_champs) FROM Ta_Table';


Sera beaucoup mieu...

Bye...
Bzh
le 08/03/2006 à 22:19
Bzh
Heu ! mouai ... J'ai répondu trop vite dsl !

J'avais mal lu, j'ai cru voir ça "SELECT *" !!!

Dsl!!! Je vais me coucher...

Je sais la sortie est là ------------->[]
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours