|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2009 Messages : 53 ![]() |
Bonjour,
J'essaye de voir depuis 2 jours comment instantier un client qui se connecte. Pour ça, je dois faire une requête qui me retourne le nom du client (ou rien si le login n'est pas bon). C'est là que je planche. Impossible de tester si mon résultat est vide. La condition laisse toujours passer. Je débute tout à fait en PHP, merci d'être compatissant. Voici mon test C'est la ligne if ($nombre['Nombre'] == '1') qui me pose le problème. J'ai fait un select count(*) AS `Nombre`where login = varlogin (dans une procédure stockée. Donc, si le login existe, il me retourne la valeur 1. Avant j'avais fait un select col1, col2, etc... et dans la classe client pour ma condition, j'avais fait un if($reponse) puis un if ($response = $listClient->fetch(). Rien ne fonctionne. Help me please. Code :
Code :
|
||||
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Citation:
2. Si $nombre['Nombre'] contient un entier autant le comparer avec... un entier, donc retire les ' autour du 1, sinon le 1 est considéré comme une chaîne ; 3. DAO::clientExist( ), vu son nom, devrait plutôt retourner un booléen ;-)
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
|
00
|
|
|
#3 |
![]() ![]() Développeur Web Inscription : décembre 2006 Messages : 2 335 ![]() |
__________________
Développeur | Zend Certified Engineer Étapes Pour mieux se servir du forum: 1. Commencez par lire les cours et tutoriels ; 2. Faites une recherche; 3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles; Nix>_Rien n'est plus pratique que la théorie |
|
|
00
|
|
|
#4 | |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2009 Messages : 53 ![]() |
Citation:
1. Print_r ($nombre) renvoie ceci: Array ( [Nombre] => 0 [0] => 0 ) 2. Correct, mais j'ai fait des tas de tests et parmi les derniers, je me suis dit que peut-être, $nombre['Nombre'] renvoyait un String. Donc j'y ai mis des quotes, mais ça ne change rien. 3. Non, il renvoye un int: 0 si le login n'existe pas, 1 s'il existe. En fait, il récupère le count(*) de la procédure. Voilà. |
|
|
00
|
|
|
#5 | |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2009 Messages : 53 ![]() |
Citation:
J'avais déjà essayé ça mais j'obtenais ceci: Warning: mysql_num_rows() expects parameter 1 to be resource, array given in C:\xampp\htdocs\courrier\modele\Client.class.php on line 25 Et la ligne 25 de la classe Client contient : return mysql_num_rows($nombreClient); J'ai aussi essayé ça: return mysql_num_rows($nombre); Pas de différence. Merci |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
mysql_num_rows( ) doit avoir en argument une ressource MySQL retournée par mysql_query( ), rien d'autre.
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
|
|
00
|
|
|
#7 | ||||||
|
Expert Confirmé
![]() Inscription : mars 2005 Messages : 2 823 ![]() |
Donc $nombre est un tableau, et $nombre['Nombre'] vaut 0 (zéro).
Si ce résultat est incorrect il faut voir en amont d'où peut venir le bug. Peut-être dans la procédure stockée. Citation:
Citation:
Code :
Code :
__________________
Un problème exposé clairement est déjà à moitié résolu Keep It Smart and Simple |
||||||
|
|
00
|
|
|
#8 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2009 Messages : 53 ![]() |
Bonjour,
Citation:
J'ai refait un print_r($nombre). Si le login est connu, le résultat est: Array ( [Nombre] => 1 [0] => 1 ) Si le login est inconnu, le résultat est : Array ( [Nombre] => 0 [0] => 0 ) Ce qui est exactement ce que je recherche. Citation:
Citation:
Citation:
Juste une question là-dessus. J'ai fait le test avec le fetch() dans clientExist() et puis qu'en est-il des ->closecursor()? J'ai du les effacer. Je déduis que quand je fais un 'return $listClient->fetc();' et que par conséquent je sors de ma méthode, le closecursor() est fait? En attendant, je viens de trouver mon erreur. Je récupérai une de ces valeurs retournée par mon 'authClient()'. Valeur est soit -2, -1, 0 ou 1. Et je faisais un test Forcément, au lieu de faire une comparaison, je faisais une affectation. ![]() Ceci fonctionne déjà mieux. grrrrrr -> deux jours pour trouver un truc comme ça. Bon, j'imagine que c'est le métier qui rentre. Je ne passe pas encore en résolu car je voudrais la confirmation du closecursor(). Merci |
||||
|
00
|
Copyright © 2000-2012 - www.developpez.com