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=>
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

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 !

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
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() ?