Comment tester résultat requête nul
Résolu
razily
Messages postés
285
Statut
Membre
-
razily Messages postés 285 Statut Membre -
razily Messages postés 285 Statut Membre -
Bonjour,
voilà ce problème semble facile ; mais j'ai passé énormément du temps pour trouver la solution ; en fait voilà y a une requête qui recherche le nom et prénom d'une personne
et si le nom n'y figure pas dans la base ; dans cet exemple le nom kim n'existe pas
et normalement le résultat devra être :
mais y l'écran affiche une page blanche
j'ai déjà essayé :
merci d'avance pour vos réponses
voilà ce problème semble facile ; mais j'ai passé énormément du temps pour trouver la solution ; en fait voilà y a une requête qui recherche le nom et prénom d'une personne
et si le nom n'y figure pas dans la base ; dans cet exemple le nom kim n'existe pas
et normalement le résultat devra être :
echo 'aucun kim dans la base '."<br />";
mais y l'écran affiche une page blanche
<?php
$cnx = odbc_connect( "DSN_personnes", "root", "" ) or die("Impossible de se connecter à la bas de donnée") ;
$sql = "SELECT * FROM [perso nnes] where nom like 'kim' ";
$requete = odbc_do($cnx, $sql) ;
//affichage des données:
while( $result = odbc_fetch_object( $requete ) )
{
if(!empty($result->nom))
{
echo $result->nom." ".$result->prenom." <br>";
}
else
{
echo 'aucun kim dans la base '."<br />";
}
}
?>
j'ai déjà essayé :
if(!empty($result))
{
echo $result->nom." ".$result->prenom." <br>";
}
else
{
echo 'aucun kim dans la base '."<br />";
}
merci d'avance pour vos réponses
A voir également:
- Comment tester résultat requête nul
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester son pc - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Tester composant pc - Guide
- Tester compatibilité windows 11 - Guide
4 réponses
Peut être faut-il tester une égalité avec la chaîne "".
ou alors peut être que
$sql = "SELECT * FROM [perso nnes] where nom like 'kim' ";
contient un espace de trop : [perso nnes] ?
ou alors peut être que
$sql = "SELECT * FROM [perso nnes] where nom like 'kim' ";
contient un espace de trop : [perso nnes] ?
Faut que tu fasse un mysql_num_rows($requete)
Il te retourne le nombre de résultats, si il est égal a zéro, tu fais afficher le message, sinon tu continu avec ton code :
Il te retourne le nombre de résultats, si il est égal a zéro, tu fais afficher le message, sinon tu continu avec ton code :
while( $result = odbc_fetch_object( $requete ) )
{
........
j'ai suivi ce que Manny78 a répondu
je crois qu'il y a un problème ;
on entre jamais dans le else mais si le nom existe
$requete = odbc_do($cnx, $sql) ;
$affected = odbc_num_rows($requete);
if($affected==-1)
{
echo 'aucun kim dans la base '."<br />";
}
else
{
//affichage des données:
while( $result = odbc_fetch_object( $requete ) )
{
je crois qu'il y a un problème ;
on entre jamais dans le else mais si le nom existe
en fait j'ai trouvé ce qui semble être la solution et çà marche
en tout cas merci à tous !!
<?php
$cnx = odbc_connect( "DSN_personnes", "root", "" ) or die("Impossible de se connecter à la bas de donnée") ;
$sql = "SELECT nom , prenom ,count(nom) as nombre FROM [perso nnes] where nom like 'kim'
group by nom , prenom ";
$requete = odbc_do($cnx, $sql) ;
// echo 'la requete '. $requete ."<br />";
$affected = odbc_fetch_row($requete);
// echo $affected."<br />";
if($affected!=1)
{
echo 'aucun kim dans la base '."<br />";
}
else
{
// si on ne met pas cette ligne , il affiche le suivant sans passer à la première valeur
$affected = odbc_fetch_row($requete,0);
//affichage des données:
while( $result = odbc_fetch_object( $requete ) )
{
//if($result!=-1)
{
echo $result->nom." ".$result->prenom." <br>";
}
}
en tout cas merci à tous !!