Forums Développement Multimédia

Aller au contenu

Group by, Order by et Where

CODE PHP MySQL

2 réponses à ce sujet

#1 carrel.j

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 14 May 2009 - 14:12 PM

Bonjour à tous !

j'ai créé un module de réservation de véhicules avec deux tables:
une table "vehicules" contenant les infos des véhicules: id_vehicules, veh_nom, veh_proprietaire...)
une table "plage-horaire" contenant les infos des réservations: id_plage_hoaire, plh_date, plh_heure_debut, plh_heure_fin, plh_nom_user, plh_id_vehicules, plh_multiple...

j'y ai ajouter l'option de réservation multiple ex: du 16 mai au 3 juin de 7h30 à 18h
ou récurrente ex: tous les lundi et mardi de 7h à 9h
un numéro est ajouté à chaque réservation récurrente ou multiple pour pouvoir les grouper (plh_multiple)[plh_multiple est égal à 0 si ce n'est pas une réservation multiple!]

jusque ici, pas de problème ^_^

mais j'aimerais afficher la date la plus petite et la date la plus grande de mes réservations en les groupant par le numéro plh_multiple
j'ai testé plein de requête et je commence à m'arracher les cheveux... ;)

en voici une qui ne fonctionne pas, elle me donne la première date groupé par l'id (puisque group by passe avant)

SELECT * FROM ag_plage_horaire
JOIN ag_vehicules ON id_vehicules = plh_id_vehicules
WHERE plh_nom_user = '$user'
and plh_date>='$aujourd'hui'
and veh_proprietaire='$proprietaire'
and plh_multiple <> 0
group by plh_multiple order by plh_date asc

merci de m'éclairer ;)

#2 carrel.j

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 14 May 2009 - 14:14 PM

j'ai oublié de précisé:
serveur mysql : 5.0.41

#3 carrel.j

    Ceinture Orange

  • Members
  • PipPipPip
  • 38 messages

Posté 14 May 2009 - 15:00 PM

j'ai trouvé la solution (si ça peut aider quelqu'un d'autre): ;)

SELECT plh_multiple, group_concat(plh_multiple), count(*), min(plh_date), max(plh_date)
FROM ag_plage_horaire JOIN ag_vehicules ON id_vehicules = plh_id_vehicules
WHERE plh_nom_user = '$user'
and plh_date>='$aujourdhui'
and veh_proprietaire='$proprietaire'
and plh_multiple <> 0
group by plh_multiple

(je ne connaissait pas du tout group_concat qui se trouve être essentiel pour ma requête !!) ^_^



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP