select count

Eléphanteau du PHP | 39 Messages

29 déc. 2007, 18:36

Re salut à tous

Mon SELECT count me sort un résultat qui ne me convient pas !!
 <?php
include 'connect.php';
$res=mysql_query('SELECT count(*) FROM livre');
echo "Le nombre de livres référencés est de : ".$res; 
 ?>

Code : Tout sélectionner

Le nombre de livres référencés est de : Resource id #4
Alors que le nom d'enregistrements devrait dépasser les 5000.

Code : Tout sélectionner

CREATE TABLE `livre` ( `titre` varchar(50) NOT NULL default '', `auteur` varchar(30) NOT NULL default '', `editeur` varchar(25) NOT NULL default '', KEY `titre` (`titre`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
D'avance merci

@+

Naje83

ViPHP
ViPHP | 5924 Messages

29 déc. 2007, 18:40

Je t'invite à relire la documentation de mysql_query() ainsi que de mysql_fetch_array()

Eléphanteau du PHP | 39 Messages

29 déc. 2007, 18:59

Ok merci...je cherche

@+

Naje83

Eléphant du PHP | 248 Messages

29 déc. 2007, 19:38

je te conseil de rajouter
$row=mysql_fetch_row($res);

echo $row[0];
T'auras un meilleur résultat :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

29 déc. 2007, 19:41

moileraz, merci de ton aide, mais Sékiltoyai avait déjà donné une piste de recherche qui aurait mené naje83 vers la solution.
Lui donner la réponse tout de suite, et qui plus est sans lui expliquer son erreur, ne l'aidera pas à comprendre et à avancer.
Notre politique est de pousser les gens à comprendre leurs erreurs, pas uniquement leur corriger ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 248 Messages

29 déc. 2007, 19:48

:lol:

C'était le cado de Noël

Eléphanteau du PHP | 39 Messages

29 déc. 2007, 20:00

Merci à tous

J'en étais là (avec google...)
<?php
include 'connect.php';
$res=mysql_query('SELECT * FROM livre');
$row=mysql_fetch_row($res);
echo "Le nombre de livres référencés est de : ".count($row[0]); 
?>
Le résultat est de 1 !

Le bon code évidemment est :
<?php
include 'connect.php';
$res=mysql_query('SELECT count(*) FROM livre');
$row=mysql_fetch_row($res);
echo "Le nombre de livres référencés est de : ".($row[0]); 
?>
Le bon résultat est de 5028.
Cela fonctionne mais je ne sais finalement pas si j'ai vraiment tout compris... :roll:

@+

Naje83

ps : Pourriez vous m'indiquer un bon bouquin sur Mysql complet avec de nombreux exemples.

ViPHP
ViPHP | 5924 Messages

29 déc. 2007, 21:59

Tu dis que tu n'as pas tout compris, mais la solution est dans les liens que je t'ai donnés, à savoir que mysql_query(), pour les requètes SELECT, renvoie une ressource inutilisable en tant que tel, qui ne peut être parcourue que par des fonctions comme mysql_fetch_array(), mysql_fetch_assoc(), et quelques autres…

Donc pour récupérer le résultat de ta requète, tu lis la première ligne de résultat avec mysql_fetch_*(), et tu récupères ensuite la/le clé, index, attribut (selon la fonction utilisée) dans le tableau ou l'objet que tu as récupéré en valeur de retour de mysql_fetch_*().

Eléphanteau du PHP | 39 Messages

30 déc. 2007, 12:46

Merci j'y vois mieux

@+

Naje83