requete SELECT et comper ligne avec PDO

Invité
Invité n'ayant pas de compte PHPfrance

08 févr. 2007, 20:21

Bonjour,

je commence à utliser PDO et je n'arrive pas à récupérer le nombre de ligne d'une requête SELECT...

avec mySQL : mysql_num_rows

mais avec PDO... :?

j'ai parcouru la documentation, j'ai trouvé pour les requetes de type INSERT, DELETE, UPDATE mais pas select...

Si vous pouviez m'éclairer ;)

merci !

ViPHP
ViPHP | 928 Messages

08 févr. 2007, 21:29

Salut,
utilises plutôt un SELECT COUNT(*) pour connaitre le nombre de lignes.

Invité
Invité n'ayant pas de compte PHPfrance

08 févr. 2007, 21:47

salut,

j'utilise un select count(*)...

mais je ne parviens pas à récupérer la donnée :?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 févr. 2007, 22:07

montre nous ton code...

utilise un alias que tu utilises comme un vrai champ=>

Code : Tout sélectionner

SELECT COUNT(*) as champ_alias ....

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

08 févr. 2007, 22:30

voici ma fonction :
function getNbrLigne($num) {
$sql = 'select count(*) from table where champs ='.$num;
$res = $this->connexion->query($sql);
echo 'Nb ligne: '. $res->fetchColumn();
return $res->fetchColumn();
}
avec ceci j'ai une...
Fatal error: Call to a member function fetchColumn() on a non-object
enfin c'est pas l'unique façon que j'ai essayé...
Je tourne en rond :roll:

ViPHP
ViPHP | 928 Messages

08 févr. 2007, 22:44

Si tu vérifiais les retours d'erreurs de tes fonctions tu n'aurais pas ce genre de problèmes ;) Ajoute un OR die('erreur sql') après l'execution de la requête.

Invité
Invité n'ayant pas de compte PHPfrance

08 févr. 2007, 22:53

j'ai erreur sql qui s'affiche normal jusque la ! :lol:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 févr. 2007, 23:33

Regarde ceci pour débugger
http://www.phpfrance.com/forums/voir_sujet-19378.php

Que retourne query($sql) ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

09 févr. 2007, 01:00

euh ma requête SQL marche très bien ...
c'est la récupération des données avec pdo que je n'arrive pas à réaliser...

les requetes que je récupère via ma fonction et que j'execute sous PHPmyAdmin fonctionne parfaitement...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 févr. 2007, 03:07

Certes, le lien n'était donné que pour info :wink:

Par contre :
Que retourne query($sql) ?


affiche le contenu (type) de $res :
var_dump($res);

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

09 févr. 2007, 12:25

salut,
$res = $this->connexion->query($sql); 
var_dump($res);
ceci renvoi : bool(false)

Eléphanteau du PHP | 20 Messages

09 févr. 2007, 13:54

attender a la base c'est récupérer le nombre de requête de pdo ?

donc ou tu as un $result = $db->query("..") qui te renvoie un tableau et en se cas tu fait un count dessus ou tu as fait un update/delete/insert et en ce cas tu as utiliser $req = $pdo->exec("...") et en ce cas $req est le nombre de ligne traiées!

Invité
Invité n'ayant pas de compte PHPfrance

09 févr. 2007, 19:19

gectou4 :

je veux récupérer ce que me renvoie ma requête (select count(*)...)

:)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 févr. 2007, 19:23

salut,
$res = $this->connexion->query($sql); 
var_dump($res);
ceci renvoi : bool(false)
Donc ce n'est pas un objet mais un booléen !
et tu ne peut donc pas appliquer une méthode dessus :
$res->fetchColumn();

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 1961 Messages

09 févr. 2007, 23:08

Bonsoir,

Je suis très étonné de la fçon dont tu utilises PDO.

Ceci me semble bizarre
$res = $this->connexion->query($sql); 
et en particulier le $this.

Peu-tu nous montrer comment tu crées ton objet et l'utilisation de la méthode query() ?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein