utilisation de LIMIT dans une requete complexe

utilisation de LIMIT dans une requete complexe - PHP - Programmation

Marsh Posté le 27-03-2006 à 22:31:50    

Bonsoir,
alors j'ai besoin d'un ptit coup de main, je suis complement perdu avec une requete
voila j'ai un tableau qui permet d'afficher des concerts dans une ville et il peux arriver qu'il y ai ce meme concert dans cette meme ville mais a une date differente.
donc le soucis c'est qu'il m'affiche autant de fois le concert qu'il ya de dates (normal!) mais moi je voudrais qu'il l'affiche qu'une seule fois etant donné qu'on connais deja la date
 

Code :
  1. <?
  2. $req_date=mysql_query("SELECT * from date,concert WHERE date.ville_id=".$_GET['ville']." AND concert.ID=date.concert_id AND concert.theme_id=".$resultat_theme['ID']." ORDER BY date" );
  3. while( $resultat_concert = mysql_fetch_assoc($req_date)){
  4. //... affichage
  5. }
  6. ?>


donnera :
_________________
concert 1
25 avril | 6 juin
_________________
concert 2
16 mai
_________________
concert 1
25 avril | 6 juin
_________________

et ...

Code :
  1. <?
  2. $req_date=mysql_query("SELECT * from date,concert WHERE date.ville_id=".$_GET['ville']." AND concert.ID=date.concert_id AND concert.theme_id=".$resultat_theme['ID']." ORDER BY date LIMIT 1" );
  3. while( $resultat_concert = mysql_fetch_assoc($req_date)){
  4. //... affichage
  5. }
  6. ?>


donnera ...
_________________
concert 1
25 avril | 6 juin
_________________

 
mais moi, je voudrais que ca donne ...
_________________
concert 1
25 avril | 6 juin
_________________
concert 2
16 mai
_________________

 
alors je ne vois pas comment faire, ca dois poutant être très simple, .. mais la je bloque !
merci infiniment de votre aide


Message édité par attentio le 27-03-2006 à 22:32:49
Reply

Marsh Posté le 27-03-2006 à 22:31:50   

Reply

Marsh Posté le 27-03-2006 à 22:45:26    

LIMIT 0,2


Message édité par benamoubeach le 27-03-2006 à 22:46:35
Reply

Marsh Posté le 27-03-2006 à 23:38:14    

Ca n'a strictement rien à voir avec un LIMIT. Ta requete ne doit pas etre geniale pour retourner 2 fois le meme concert pour la meme date. A moins que ce soit la table
 

Code :
  1. SELECT *
  2. FROM concert  c INNER JOIN date d ON (c.id = d.concert_id)
  3. WHERE date.ville_id=$ID_VILLE
  4. AND concert.theme_id=$ID_THEME
  5. ORDER BY c.libelle ASC,  d.date_concert ASC


 
Ta requete te retourne pour un ville donnée et un theme donné l'ensemble des concerts et de leurs dates. Selon cette derniere je soupconne qu'il y ait des doublons dans tes tables. Vois dejà a regler ca. Sinon:
 

Code :
  1. SELECT distinct *
  2. FROM concert  c INNER JOIN date d ON (d.id = c.concert_id)
  3. WHERE date.ville_id=$ID_VILLE
  4. AND concert.theme_id=$ID_THEME
  5. ORDER BY c.libelle ASC,  d.date_concert ASC


 
Et autre chose à faire, le * est à proscrire. Tu sais quels champs vont te servir, mets les directement dans le SELECT. C'est plus propre, plus efficace, ca reduit le volumetrie, ...
 
A moins que tu veuilles faire:
 
concert 1
-> Date 1, Date 2, ...
 
concert 2
-> Date 3, Date 4, ...
 
...
 
Dans ce cas, tu gardes la premiere requete, et le filtre se fera avec PHP.


Message édité par cinocks le 27-03-2006 à 23:41:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed