[PDO] count avec fetch et fetchAll - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [PDO] count avec fetch et fetchAll (/showthread.php?tid=4852) |
[PDO] count avec fetch et fetchAll - php_addict - 28-05-2010 bonjour avec PDO (et mysql) j'utilise 2 types de code pour récupérer les données de ma base mysql: Avec fetch pour récupérer une seule ligne Code : $result=$connexion_mmorpg->query("SELECT id FROM table WHERE id=1"); Avec fetchAll pour récupérer plus qu'une seule ligne Code : $result=$connexion_mmorpg->query("SELECT id FROM table WHERE id=1"); pour connaitre le nombre de lignes retournées après un SELECT, si j'ai bien compris: avec fetch faut utiliser la function FOUND_ROWS() de mysql avec fetchAll faut utiliser la function count() de php j'ai bon? n'y a t il pas un moyen d'utilier la meme function dans les 2 cas (fetch et fetchAll) ? c'est ennuyeux... faîtes de beaux rêves PS: RowCount (PDOStatement::rowCount) semble fonctionner dans les 2 cas mais la doc de PDO précise que ce n'est valable qu'aprés une requête DELETE, INSERT, ou UPDATE mais pas après un SELECT (sauf que dans mon cas cela semble quand même fonctionner...) RE: [PDO] count avec fetch et fetchAll - Sephi-Chan - 28-05-2010 Je comprends pas le problème… Quand tu fais un simple fetch, tu sais très bien que si tu as un retour, il est unique. Puisque c'est le principe même de cette méthode, de ne retourner qu'une ligne. Et pour fetchAll, tu as la méthode count. Quel est le problème ? Sephi-Chan RE: [PDO] count avec fetch et fetchAll - QuentinC - 28-05-2010 IL y a la méthode rowCount http://fr.php.net/manual/en/pdostatement.rowcount.php RE: [PDO] count avec fetch et fetchAll - php_addict - 28-05-2010 (28-05-2010, 12:38 AM)Sephi-Chan a écrit : Je comprends pas le problème… Quand tu fais un simple fetch, tu sais très bien que si tu as un retour, il est unique. Puisque c'est le principe même de cette méthode, de ne retourner qu'une ligne. en fait non: si tu fais un SELECT sur une ligne qui n'existe pas ou plus...avec fetch tu as comme retour bool(false) et avec fetchall en retour tu aurais array(0) { } ma question etait "comment tester le nombre de ligne retournée de la meme maniere dans les 2 cas" (28-05-2010, 05:52 AM)QuentinC a écrit : IL y a la méthode rowCount merci mais rowcount ne marche pas pour les SELECT lors d'un fetch je pense avoir trouvé: je vais me faire une petite fonction avec is_array() et is_bool() et count() merci quand même et désolé si je n'ai pas été très clair... bonne journée RE: [PDO] count avec fetch et fetchAll - php_addict - 28-05-2010 re-bonjour pouvez vous me dire si je me trompes dans mon code svp: 1) trouver le nb d'éléments lors d'un SELECT avec ->fetch Code : $result=$connexion_mmorpg->query("SELECT id,pseudo FROM mmorpg.joueur WHERE id=1546"); 2) trouver le nb d'éléments lors d'un SELECT avec ->fetchAll Code : $result=$connexion_mmorpg->query("SELECT id,pseudo FROM mmorpg.joueur WHERE id=1"); 3) trouver le nb d'éléments lors d'un SELECT COUNT sans pour autant récupérer de données pour ce coup là, je n'en suis pas vraiement certain: (j'ai lu le code de http://stackoverflow.com/questions/883365/count-with-pdo mais il semble y avoir une erreur car il utilise un count() sur un fetchColumn() ...) Code : $result=$connexion_mmorpg->query("SELECT COUNT(id) FROM mmorpg.joueur"); j'ai bon? y a t il quelques chose qui vous choque? merci de m'avoir lu |