Vous n'êtes pas connecté - 0 membre connecté
Catégories
Graphisme
Flash (51)
Print (66)
Programmation
PHP (66)
Base de données (17)
ASP (2)
CSS (26)
Hardware
PC (34)
Mac (14)
Linux (5)
Divers
Blabla (261)
933 Sujets
12337 Réponses
Programmation > Base de données > Classer une requête
Classer une requête
Bonjour à tous,

je découvre en ce moment le PHP et je rencontre un problème qui, je crois, va m'obliger à m'intéresser à d'autres langages mais avant ça, je souhaitais un avis plus pro.

Imaginons une base de donnée qui contient 3 tables.
On cherche à référencer toutes les fois où une personne est allé dans un certain lieu (par exemple).

On crée une table qui associera "chaque fois que la personne se déplace dans un lieu" à une entrée. Donc "Machin va dans le lieu blabla aujourd'hui à tel heure" c'est une entrée de cette table.
Cette table inclut une colonne "lieu" qui contient un id (celui du lieu en question).

Maintenant on a une table qui contient les lieux. Chaque lieu (exemple : Crédit Lyonnais, Carrefour ...) a un id propre et appartient à un type de lieu (exemple : banque, supermarché etc ...). Chaque lieu est donc associé à un id de type de lieu.

Enfin une dernière table contient les types de lieux. Chaque type de lieu a un id propre.

Maintenant supposons que je veuille afficher un tableau qui contient ma liste de lieux. Si je veux le classer par nom, ou par id aucun soucis.

Je cherche à afficher dans mon tableau pour chaque lieu, le nombre de fois qu'une personne y est allée. Je dois donc créer une fonction qui cherche dans la première table le nombre d'entrée où le lieu correspond à l'id du lieu sélectionné.

Mais pour afficher ce tableau , j'avais sorti les informations de ma table lieux avec une requête du type SELECT * FROM lieux ORDER BY nom ...

Comment classer mon tableau par nombre de fois qu'une personne est allée dans ce lieu (sachant que cette info est calculée à partir d'une fonction qui cherche dans la première table).

Même soucis pour ma table des types de lieux.

Comment dois-je faire ?

Merci d'avance pour les idées qui pourront m'aiguiller.

P.S : En relisant, je me dis qu'un petit schéma faciliterai la compréhension.

Deux petits shémas explicatifs :

- pianobass.free.fr
- pianobass.free.fr
Posté le 24 04 2007 à 11h17
aguenard - Membre

Réponses - Classer une requête
d'acc avec le PS (nan pas le parti socialiste mais le post scriptum)

en fait je pense que le php n'a rien à voir la dedans ^^ ou trés peu

d'aprés ce que j'ai compris pas besoin de s'intéresser à d'autres langages, sql suffira

en fait le but est de faire une relation entre tes tables et la jointure est ce que tu cherches :
sql.developpez.com

enfin si toutefois j'ai plus ou moins bien compris tes explications ;)
Posté le 24 04 2007 à 11h43
senkante - Membre
 Je te fais ça l'arrache de tête :


SELECT personne.*, 
COUNT(deplacement.idDeplacement) AS nbDepl FROM personne 
LEFT JOIN deplacement ON(personne.idPersonne=deplacement.idPersonne) 
GROUP BY personne.idPersonne 
ORDER BY nbDepl DESC
Posté le 24 04 2007 à 12h15
benzor - Administrateur - www
Comme benzor je pense que le LEFT JOIN est l'idéal pour ce genre de requête.
Posté le 24 04 2007 à 12h18
askhanir - Membre - www
Pareil, c'est une question de jointure. Et ça n'a rien à voir avec du PHP :-)
Posté le 24 04 2007 à 19h44
symzo - Membre - www
Bon je crois que j'ai largement sous-estimé les capacités de SQL, je vais lire l'article de developpez.com merci pop.
Et surtout merci ben tu m'as mâché le boulot !
Posté le 24 04 2007 à 21h32
aguenard - Membre
Sujets Base de données
<< 1 2 >>
Classer une requête
Auteur : aguenard
Posté le 24 04 2007 à 11h17
5 Réponses (Nouveau sujet)
Sujet visité 1023 fois
MySQL > Eviter la (...)
Auteur : tyler
Posté le 02 04 2007 à 10h07
16 Réponses (Nouveau sujet)
Sujet visité 865 fois
MySql et hebergement
Auteur : nanook
Posté le 15 03 2007 à 09h04
7 Réponses (Nouveau sujet)
Sujet visité 671 fois
Comparaison de (...)
Auteur : airvai
Posté le 01 03 2007 à 10h05
6 Réponses (Nouveau sujet)
Sujet visité 901 fois
[résolu]sql 95 bdd !
Auteur : senkante
Posté le 08 02 2007 à 11h38
4 Réponses (Nouveau sujet)
Sujet visité 527 fois
[annulé]against
Auteur : veensez
Posté le 27 10 2006 à 20h15
5 Réponses (Nouveau sujet)
Sujet visité 809 fois
MySQL - Méthode de (...)
Auteur : benzor
Posté le 25 07 2006 à 17h20
24 Réponses (Nouveau sujet)
Sujet visité 768 fois
<< 1 2 >>
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006