Bonsoir,

Me revoilà avec une nouvelle question :

Cette requête fonctionne parfaitement, je peux ainsi imprimer les billets achetés par personne, avec le prix par billet et un total par prix de billet, en sélectionnant la personne dans la page précédente

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SELECT
                IDNPlace,
		NumPlace,
		Reférence,
		Personnes.IDPersonne,
		Personnes.Nom_Personne,
		Personnes.Prenom_Personne,
		Personnes.Paiement,
		Personnes.Motet,
		Instruments.Instrument,
		Concert.IDconcert,
		Concert.titreconcert,
		Concert.lieu,
		DATE_FORMAT ( Concert.dateconcert, '%d/%m/%Y' ) AS datecon,
		Zones.IDZone,
		Zones.Zone,
		Prix.IDPrix,
		Prix.Prix,
		SUM(Prix.Prix) AS prixbillets,
		COUNT(Prix.Prix) AS nbillets
 
		FROM Tab_NumPlace
 
		INNER JOIN Personnes ON Tab_NumPlace.IDPersonne = Personnes.IDPersonne
		INNER JOIN Instruments ON Personnes.IDInstruments = Instruments.IDInstruments
		INNER JOIN Concert ON Tab_NumPlace.IDconcert = Concert.IDconcert 
		INNER JOIN Zones ON Tab_NumPlace.IDZone = Zones.IDZone 
		INNER JOIN Prix ON Zones.IDPrix = Prix.IDPrix
 
		WHERE Personnes.IDPersonne = '".$_REQUEST['idmus']."' AND Concert.IDconcert  = '".$_REQUEST['idpm']."'
		GROUP BY IDPrix
		ORDER BY IDPrix
Voici le résultat, par exemple une personne a acheté 3 billets à 10 euro et 2 billets à 5 euro, j'aurai :

Fred Machin :
3 billets à 10 euro = 30 euro
2 billets à 5 euro = 10 euro
prix total = 40 euro


J'ai voulu faire la même chose sans être obligée de sélectionner la personne avant de lancer la requête, c'est-à-dire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SELECT
                IDNPlace,
		NumPlace,
		Reférence,
		Personnes.IDPersonne,
		Personnes.Nom_Personne,
		Personnes.Prenom_Personne,
		Personnes.Paiement,
		Personnes.Motet,
		Instruments.Instrument,
		Concert.IDconcert,
		Concert.titreconcert,
		Concert.lieu,
		DATE_FORMAT ( Concert.dateconcert, '%d/%m/%Y' ) AS datecon,
		Zones.IDZone,
		Zones.Zone,
		Prix.IDPrix,
		Prix.Prix,
		SUM(Prix.Prix) AS prixbillets,
		COUNT(Prix.Prix) AS nbillets
 
		FROM Tab_NumPlace
 
		INNER JOIN Personnes ON Tab_NumPlace.IDPersonne = Personnes.IDPersonne
		INNER JOIN Instruments ON Personnes.IDInstruments = Instruments.IDInstruments
		INNER JOIN Concert ON Tab_NumPlace.IDconcert = Concert.IDconcert 
		INNER JOIN Zones ON Tab_NumPlace.IDZone = Zones.IDZone 
		INNER JOIN Prix ON Zones.IDPrix = Prix.IDPrix
 
		WHERE Concert.IDconcert  = '".$_REQUEST['id']."'
		GROUP BY IDPrix
		ORDER BY IDPrix

et là j'obtiens :

Fred Machin :
5 billets à : 10 euro = 50 euro
2 billets à : 5 euro = 10 euro

Jo Dupont
5 Billets à : 40 euro = 200 euro

Jules Durand :
3 Billets à : 35 euro = 105 euro

et

Amélie Truc qui avait deux billets à 10 euro n'apparait pas, ses deux billets ont passé chez Fred Machin qui lui n'en avait acheté que trois et se retrouve avec 5.

Je soupconne que le problème vient du GROUP BY, mais après avoir testé d'autres possibilités, celle-ci fonctionnait si bien que j'ai voulu l'appliquer sans être obligée de sélectionner les personnes une à une pour imprimer, mais les imprimer toutes d'un seul coup (surtout qu'il peut y en avoir une centaire)

Comme d'habitude la solution est certainement toute simple pour les experts et très compliquée pour moi

Merci d'avance pour votre aide précieuse et bonne semaine à tous