Optimisation de requete de comptage

Résolu
Signaler
Messages postés
60
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
29 juillet 2009
-
Messages postés
60
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
29 juillet 2009
-
bonjour à tous
je cherche à selectionner certaines images (avec une requete where) et à compter le resultat en utilisant le moins de ressources possibles,  j'ai pas bien compris la syntaxe
pour le moment je fais$requete mysql_query ( 'SELECT cat,id,chemin,page FROM image where id '.$type.'') OR die('Erreur de la requête images');$ntotal count('id'); // il s'agit du nombre total d'image dont l'id'$type',

auriez vous une idée de la manière à suivre?
  merci

6 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
En demandant sur le forum php tu auras peut etre une reponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
37
Salut

Utilise directement une requete du type
SELECT count(*) FROM image where id= '.$type.''

Sinon avec une recherche poussée tu aurais trouvé
http://www.phpcs.com/infomsg_MYSQL_NUM_ROWS-COUNT_799955.aspx

Bon coding
Messages postés
60
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
29 juillet 2009

salut merci pour ta reponse j'avais effectivement vu ce message sur le forum
en fait je voeux savoir s'il ést possible de faire un truc comme
$requete mysql_query ( 'SELECT cat,id,chemin,page FROM image where id '.$type.', count('id')') OR die('Erreur de la requête images');

et si oui comment récuperer le count?
merci
jeremie
Messages postés
60
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
29 juillet 2009

pas bête je vais essayer ;-)
Messages postés
68
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
7 juillet 2008
4
Si j'ai bien compris tu veux à la fois sélectionner les images et en plus connaitre le nombre de résultats.

Pour éviter d'avoir à faire deux requêtes sélectionnant des images, MySQL propose une solution dans son manuel (je ne l'ai pas testée) :

$requete1 = mysql_query("SELECT SQL_CALC_FOUND_ROWS cat, id, chemin, page FROM image where id= $type'') OR die('Erreur de la requête images');

$requete2 = mysql_query('SELECT
SELECT FOUND_ROWS()'
) OR die('Erreur de la requête nombre images');

Mais en réalité, on peut se contenter d'une seule requête en PHP avec une fonction spécifiée dans le manuel :

$requete = mysql_query("SELECT cat, id, chemin, page FROM image where id= $type'') OR die('Erreur de la requête images');

$nbimages = mysql_num_rows();

Ceci ne fonctionne que pour l'instruction SELECT. Pour les instructions UPDATE ou DELETE, il faut utiliser la fonction mysql_affected_rows.
Messages postés
60
Date d'inscription
dimanche 18 mai 2003
Statut
Membre
Dernière intervention
29 juillet 2009

c'est effectivement ce sur quoi je suis parti
mais ce serait quand même plus simple si les ordinateurs parlaient français!