Requete multiple

Résolu
jerrrrrry Messages postés 60 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 29 juillet 2009 - 17 avril 2008 à 22:24
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 - 18 avril 2008 à 00:22
bon[jour/soir],
je cherche à selectionner certaines images (avec une requete where) et
à compter le résultat en utilisant le moins de ressources possibles,  j'ai pas bien compris la syntaxe
j'aimerais savoir s'il est 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

8 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
17 avril 2008 à 23:21
Euh... mais j'ai comme un doute... Je suis pas convaincu que le count() ne s'applique qu'aux résultats filtrés avec WHERE...

Cependant, quand une requête est exécutée et que le serveur renvoi un jeu de résultat, il stocke en mémoire le nombre de résultats. Exécuter mysql_num_rows() ne fait que lire ce résultat, qui a été DE TOUTE FACON ET QUOI QU'IL EN SOIT calculé lors de l'exécution de la requête. Donc, que tu le lises ou non, il est calculé et rendu disponible par le serveur.

Je ne vois donc pas pourquoi ne pas utiliser mysql_num_rows(), effectivement...
count(id) sera rapide parce que id est vraissemblablement une clé de la table.
Mais bon, lire le nombre de lignes n'est pas franchement lent... là, tu cherches midi à quatorze heure (je te le dis tout de suite : il n'y est pas)

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
17 avril 2008 à 22:51
Salut,

Ta requête est mal foutue... Tu veux faire quoi exactement ?

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
17 avril 2008 à 22:57
Salut,

Moi je pense qu'il veut savoir le nombre de résultats que sa requête génère. La meilleure façon serait d'utiliser la fonction mysql_num_rows

Doc: http://ca.php.net/manual/en/function.mysql-num-rows.php

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
17 avril 2008 à 23:12
Ben moi je pense pas, parce qu'il y a un count() dans sa requête...

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jerrrrrry Messages postés 60 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 29 juillet 2009
17 avril 2008 à 23:14
à neigedhiver ,
je veux  selectionner les champs cat,id,chemin,page de la table image dont l'id est identique à la variable $type et compter le nombre d'image (identifiée par id) qui repondent à cette condition,
à yoman64
j'aimerais utiliser count on m'a dit que  le count() est plus rapide à l'éxecution que le mysql_num_row()
merci
a+
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
17 avril 2008 à 23:17
En tout état de cause, cout(id) doit se trouver dans la clause SELECT, pas dans la clause WHERE.
Donne lui un alias pour le récupérer plus facilement :

SELECT count(id) as nb_id, patati, patata, blabla, blibli FROM table where bidule=id;

Euh par exemple quoi.

<hr size="2" width="100%" />Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
jerrrrrry Messages postés 60 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 29 juillet 2009
17 avril 2008 à 23:26
j'ai peut être quelques fuseaux horaires de décalage ;-)
je vais donc me servir de mysql_num_row
merci & à plus
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 1
18 avril 2008 à 00:22
@Neige: c'est pas parce qu'un utilisateur utilise une fonction en pensant que c'est supposé fonctionner, que ça veut dire que c'est adapté à la situation Parfois faut déchiffrer l'explication sans faire attention au bout de code fournit. Mais je suis sur que tu savais déja tout ça

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0