Page 1 sur 2

requete SELECT et comper ligne avec PDO

Posté : 08 févr. 2007, 20:21
par Invité
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 !

Posté : 08 févr. 2007, 21:29
par Genova
Salut,
utilises plutôt un SELECT COUNT(*) pour connaitre le nombre de lignes.

Posté : 08 févr. 2007, 21:47
par Invité
salut,

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

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

Posté : 08 févr. 2007, 22:07
par Truc
montre nous ton code...

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

Code : Tout sélectionner

SELECT COUNT(*) as champ_alias ....

Posté : 08 févr. 2007, 22:30
par Invité
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:

Posté : 08 févr. 2007, 22:44
par Genova
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.

Posté : 08 févr. 2007, 22:53
par Invité
j'ai erreur sql qui s'affiche normal jusque la ! :lol:

Posté : 08 févr. 2007, 23:33
par Truc
Regarde ceci pour débugger
http://www.phpfrance.com/forums/voir_sujet-19378.php

Que retourne query($sql) ?

Posté : 09 févr. 2007, 01:00
par Invité
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...

Posté : 09 févr. 2007, 03:07
par Truc
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);

Posté : 09 févr. 2007, 12:25
par Invité
salut,
$res = $this->connexion->query($sql); 
var_dump($res);
ceci renvoi : bool(false)

Posté : 09 févr. 2007, 13:54
par gectou4
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!

Posté : 09 févr. 2007, 19:19
par Invité
gectou4 :

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

:)

Posté : 09 févr. 2007, 19:23
par Truc
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();

Posté : 09 févr. 2007, 23:08
par Ajoloca
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() ?