Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > DB & MDB2
DB & MDB2 Forum d'entraide pour les bibliothèques DB et MDB2 du framework PEAR, permettant de manipuler les bases de données en PHP. Avant de poster -> tutoriels DB et MDB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2007, 10h34   #1
Invité régulier
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 5
Points : 5
Par défaut [DB] Nombre de résultat d'une requête

Bonjour,
je suis débutant en PEAR, je suis en train de faire une application. Voilà mon problème concernant le login:
J'ai le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$numrows = $db->getOne("SELECT count(id) FROM clients WHERE login=upper('$login') AND password=upper('$pass')");
if ($numrows=="1") {
	$query = "SELECT id FROM clients WHERE login=upper('$login') AND password=upper('$pass')";
	$rsc = $db->query($query);
	if (DB::isError($rsc))die("erreur SQL lors de la recherche de l'utilisateur<br>");
	$rsc->fetchInto($result);
        session_register("authentification");
 
	$_SESSION['id_user'] = $result[0];
	header("Location:./client/login/frame.php");
}
else {
	header("Location: index.php?erreur=login");
}
Ca marche bien, mais si on fait ca, il faut faire 2 fois la requête. J'ai donc décidé de changer à:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$query = "SELECT * FROM clients WHERE login=upper('$login') AND password=upper('$pass')";
$rsc = $db->query($query);
if (DB::isError($rsc)) die("erreur SQL lors de la recherche de l'utilisateur<br>");
if ($rsc->numRows()) {
	$rsc->fetchInto($result);
	session_register("authentification");
	$_SESSION['id_user'] = $result[0];
	header("Location:./client/login/frame.php");
}
else {
	header("Location: index.php?erreur=login");
}
Mais je peux logger meme si le login et pass sont faux.
J'ai également essayer: count($rsc), count($rsc) == 1, count($rsc) =="1", $rsc->numRows() == 1, $rsc->numRows() == "1". Ca marche toujours pas, soit je ne peux pas logger, soit je log dans tous les cas.
Pouvez vous m'aider?
vannhi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2007, 11h55   #2
Invité régulier
 
Inscription : juillet 2006
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 15
Points : 8
Points : 8
Salut,

Bon j'ai jamais utilisé PEAR, mais...

Essaie d'afficher $rsc->numRows() pour voir ce que ça contient.

Moi je ferais if ($rsc->numRows() > 0)

Mais ce que t'as marqué devrait pouvoir marcher aussi normalement...
deuspi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 11h04   #3
Invité régulier
 
Inscription : juillet 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 7
Points : 5
Points : 5
Merci,
j'ai trouvé le problème. J'utilise Oracle, il faut donc activer l'option DB_PORTABILITY_NUMROWS quand on connecte pour que numRows marche.
vannhi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h49.


 
 
 
 
Partenaires

Hébergement Web