Accueil > Forum > > > > requete GROUP BY
requete GROUP BY
lundi 7 novembre 2005 à 22:56:00 |
requete GROUP BY

rissoux
|
Bonjour, J'ai fait un site album photos, les photos sont classées par catégories et sous-catégories. Je voudrais que lorsque l'on arrive sur la page catégorie il y ai la dernière photo enregistrée de chaque sous catégorie qui s'affiche. J'ai fait :
$query = "SELECT * FROM photos WHERE Cat ='Voyages' GROUP BY SCat DESC ";
Ou encore :
$query = "SELECT MAX(ID),Cat,SCat,Img FROM photos WHERE Cat ='Voyages' GROUP BY SCat DESC ";
Mais c'est toujours la première photo enregistrée et non la dernière qui s'affiche.
Est-ce que quelqu'un peut m'éclairer sur mon erreur ?
Merci.
|
|
mardi 8 novembre 2005 à 00:45:42 |
Re : requete GROUP BY

sjon
|
Sael og blesud
BY ORDER ASD ... ;-)
Bon courage ...
NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...
Sigurjón Bírgir Sigurðssón aka Sjón
|
|
mardi 8 novembre 2005 à 01:22:24 |
Re : requete GROUP BY

FhX
|
asc plutot non ?
|
|
mardi 8 novembre 2005 à 07:52:55 |
Re : requete GROUP BY

sjon
|
Sael og blesud
C'est sûr ... Lol ... ;-)
Bon courage ...
NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...
Sigurjón Bírgir Sigurðssón aka Sjón
|
|
mardi 8 novembre 2005 à 09:42:10 |
Re : requete GROUP BY

monoceros01
|
Moi personnellement je ferai (oui c'est au futur et non au conditionnel, je vais refaire ma galerie ;p) :
table categories :
- id
- nom
- description
table images :
- id
- id_cat
- url
- titre
- auteur
- descriptions
- date
et ma requête :
$query = ' SELECT nom, date FROM images ' ; // Les champs que je
vais utiliser. je ne récupère pas url, car j'affiche les miniature
correspondantes qui sont de la forme /minis/[id].jpg
$query.= ' WHERE id_cat = '.$id_categorie ; // Pour bien sélectionner uniquement les image d'une catégorie
$query.= ' ORDER BY date DESC '; // Ordonner du plus récent au plus vieux
$query.= ' LIMIT 1 '; // Prendre le premier résultat uniquement
|
|
mardi 8 novembre 2005 à 10:13:02 |
Re : requete GROUP BY

rissoux
|
Salut, et merci d'avoir répondu aussi rapidement,
Mon problème c'est que je n'ai pas que des catégories.
Dans mon album, j' ai 3 pages : Voyages, Famille, Divers. Dans ces 3 pages les sous-catégories se crées au fur et à mesure. Exemple : Dans Voyages il y aura un sous-menu : - Bretagne - Camargue - etc... quand j'ajouterai des photos d'un autre voyage...
Quand j'arrive sur Voyages je voudrais que la dernière photo de chaque sous-catégories s'affiche. Avec ma requete, si je mets un ORDER BY, c'est le résultat de ma requete qui est classé, et je ne vois pas comment demander un classement à l'intèrieur de la sous-catégorie ?
J'arrive à ce résultat en faisant :
$query = "SELECT DISTINCT SCat FROM photos WHERE Cat ='Voyages' ORDER BY ID DESC"; $res = mysql_query($query) or die($query.'<br>'.mysql_error()); $nombre = mysql_num_rows($res); while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) { $scat = $row['SCat']; $qr = "SELECT * FROM photos WHERE Cat ='Voyages' AND SCat ='$scat' ORDER BY ID DESC LIMIT 1";
Mais j'aurais aimé pouvoir le faire en une seule requete !!!
Ce doit bien être possible.
|
|
mardi 8 novembre 2005 à 11:06:16 |
Re : requete GROUP BY

monoceros01
|
Personnellement, je pense que ta table, telle que je l'apeçois à travers tes requêtes, n'est pas très bien conçue.
J'ai l'impression qu'a chaque photo, tu es obligé de répéter le nom de la catégorie et de la sous-catégorie d'appartenance. Et ça, vois-tu, c'est une grosse erreur de structure. Normalement, il NE DOIT PAS y avoir de répétition de données dans un base de données!
Je te conseil de faire quelque chose de ce genre : table catégories : - id (PRIMARY KEY, auto_increment) - id_parent - nom
table photos : - id - id_cat - nom - url - etc...
Ainsi, tu ne répète qu'un petit nombre (id dans table catégorie <=> id_cat dans table photos) et c'est beaucoup plus simple. Pour la hierarchie entre catégories, elle est représentée par id_parent qui est égale à 0 si c'est une catégorie de base, et égale à l'id de la catégorie si c'est une sous-catégorie.
Par contre, il ne me semble pas possible de tout faire en une seule requête... (Mais je peux me tromper =) )
|
|
mardi 8 novembre 2005 à 13:37:56 |
Re : requete GROUP BY

rissoux
|
Merci monoceros01, et je suis tout à fait d'accord avec toi, j'aurais dû faire 2 tables, mais j'ai fait ça dans l'urgence et ma table ne contient que 5 champs. A présent j'ai le temps et je vai tout reprendre.
Je pense moi aussi que je n'arriverai pas à faire une seule requête et c'est bien dommage ! ;-)
|
|
mardi 8 novembre 2005 à 13:47:19 |
Re : requete GROUP BY

monoceros01
|
Réponse acceptée !
Bon j'avais pas le temps d'y réflechir car j'étais au boulot. Mais de
toute façon, dans une même catégorie, je suppose que tu vas vouloir
lister les sous categories. Ce qui implique une requête de ce type :
$query = 'SELECT id,nom FROM categorie WHERE id_parent='.$id_categorie_actuelle.' ORDER BY nom ASC' ;
Et dans tous les cas tu devras faire une boucle pour afficher tes catégories.
Donc dans la boucle tu devra mettre :
$query = 'SELECT url FROM photos WHERE id_cat = '.$data['id'].' ORDER BY date DESC LIMIT 1' ;
Bon ce qui est embêtant c'est que ça fait une requête par catégorie... Mais je ne sais pas si on peut faire mieux...
|
|
mardi 8 novembre 2005 à 18:10:44 |
Re : requete GROUP BY

rissoux
|
Ce que j'ai fait fonctionne très bien aussi :
$query = "SELECT DISTINCT SCat FROM photos WHERE Cat ='Voyages' ORDER BY ID DESC"; $res = mysql_query($query) or die($query.'<br>'.mysql_error()); $nombre = mysql_num_rows($res); while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) { $scat = $row['SCat']; $qr = "SELECT * FROM photos WHERE Cat ='Voyages' AND SCat ='$scat' ORDER BY ID DESC LIMIT 1";
J'utilise un while, mais ça revient au même, je crois que je vai en rester là. Mais j'aime bien chercher donc ....
Merci encore de ton aide
|
|
Cette discussion est classée dans : photos, cat, group, by, scat
Répondre à ce message
Sujets en rapport avec ce message
pb avec un `group by` [ par eax ]
salut à tous!!g un soucis avec une requete et je pense que c pas très compliqué, mais je trouve pas:g une table `photos` avec un champ date (date d'up
group by... order by [ par kyript ]
bonjour a tous context: forum j'affiche sur une page les noms des sujets qui ont les messages les plus récent. ensuite je les groupe par sujet puis a
Group By / Order by [ par j3r3m067 ]
Bonjour à tous, VOila j'ai un peut probleme, j'ai une requete toute simple: [code=autre]select qualification.titre from qualification where (archive
Séparer le résultat de mon order by par un ligne vierge. [ par ecolom ]
Bonjour à tous, Mon bout de code ci-desous permet d'afficher une partie de résultat dans une page avec une option pour visualiser le restant des don
Problème: Galerie d'images [ par Kronikerz ]
Bonjour, Je créer une galerie d'images, mais je rencontre un problème et j'aimerais des conseils, voir une solution. Les photos de ma galerie se tro
Galerie photos: Miniature + rognage [ par Kronikerz ]
Bonjour, Je suis à la recherche de 2 scripts: le premier permettant de miniaturiser une image, tout en gardant les proportions. Le second dans le b
Problème requete d'insertion selon les différents navigateurs!!!! [ par chris91160 ]
Bonjour tout le monde! déjà merci d'avance meme si vous n'arrivez pas à m'aider!lol[^^happy3] voilà jai un problème avec le dernier site web que je c
Formulaire d inscriptions avec Gestion membre + photos [ par screenzz ]
Bonsoir, Je me permet de faire ce post car je suis a la recherche d un formulaire d inscription avec gestion de membre et possibilité d ajouter des p
upload [ par cryba ]
bonjour, j'ai un formulaire qui recupère des infos et ses infos sont stockés dans une base de données.Dans ce formulaire je recupére des photos et des
load data in file.... erreurs 1045 et 1148 [ par hdh ]
Bonjour Je viens de changer d'hébergement pour passer à la pointure audessus mais les imports que je faisais en load data in file ne fonctionnent plu
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|