par
gectou4 » 10 févr. 2007, 02:37
Personellement ça ne me semble pas bizard si il utilise l'objet :
private $connexion; // pointeur vers l'instance pdo
__construct($connexion){
$this->connexion = $connexion;
}
Ensuite fetchColumn() retourne les données depuis une colonne d'un jeu de résultats, pas le nombre de ligne !
Tu devrais plus utiliser :
fetch()
Si tu souhaite savoir le nombre de
colone dans ta requête:
$sql = 'select * from table where champs ='.$num;
Si tu souhaites savoir le nombre
ligne et que tu as un champ unique ou primaire comme un ID
privilégie le :
$sql = 'select count(id) from table where champs ='.$num;
Tu peux essayer rowCount() mais il ne marche pas avec toutes les DB
Je pense que tu as du t'inspirer de ça :
http://fr2.php.net/manual/fr/function.P ... wCount.php
pour ton script or cet exemple ne retroune pas concrétement le nombre de ligne.
Si avec un fetch() ou fetchObject() si tu veux call une methode; tu ne retrouve pas le nombre de ligne essay ce 'hack' :
function getNbrLigne($num) {
$sql = 'select champs from table where champs ='.$num;
$res = $this->connexion->execute($sql);
echo 'Nb ligne: '. $res;
return $res;
}
ou
function getNbrLigne($num) {
$sql = 'select champs from table where champs ='.$num;
$res = $this->connexion->query($sql);
$nb_ligne=count($res->fecthAll());
echo 'Nb ligne: '.$nb_ligne;
return $nb_ligne;
}
Enfin si cela venait à ne pas marcher vérifie que tu n'appel pas un execute() juste avant d'appeller ta fonction.