Comment tester résultat requête nul

Résolu/Fermé
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 - Modifié par razily le 15/06/2010 à 14:51
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 - 16 juin 2010 à 08:13
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 :
 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&eacutee") ; 
  $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:

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] ?
0
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 :


while( $result = odbc_fetch_object( $requete ) ) 
    { 
   
........
0
Jme suis trompé, tu utilise odbc, il faut donc remplacer mysql par odbc !
0
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 2
Modifié par razily le 15/06/2010 à 17:30
j'ai suivi ce que Manny78 a répondu

$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
0
razily Messages postés 250 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 4 décembre 2013 2
16 juin 2010 à 08:13
en fait j'ai trouvé ce qui semble être la solution et çà marche

<?php




 $cnx = odbc_connect( "DSN_personnes", "root", "" ) or die("Impossible de se connecter à la bas de donn&eacutee") ;
  $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 !!
0