Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/04/2007, 19h47   #1
Invité régulier
 
Inscription : février 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 19
Points : 5
Points : 5
Par défaut [urgent]Liste déroulante --> données d'une table

Bonjour,

je dois réaliser une page permettant la commande de produits. J'ai donc une table (entre autres, sous mySql) qui se présente comme ceci :

id marque produit


je voudrais créer une liste déroulante (formulaire) permettant le choix de la marque et une seconde liste donnant les produits de cette marque pour permettre au client de choisir.

Ma question est la suivante :

comment insérer dans une liste déroulante (formulaire) de façon automatique les données issues de la base mysql ? (en php si possible)
comment ne faire afficher sur la seconde liste que les produits de la marque choisie précédemment ? (toujours de façon automatique car j'ai plus de 10 produits par marque!)

je vois bien les reqêtes qu'il faut utiliser :

select distinct marque from matable ; //pour la première liste
select produit from matable where marque="la marque choisie précédemment";

mom véritable problème est de pouvoir remplir le forumaire (mes listes) de façon automatique avec un script php.

J'espère avoir été un peu près clair.

Merci beaucoup par avance

romain
romain.barraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 12h14   #2
Invité régulier
 
Inscription : février 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 19
Points : 5
Points : 5
Personne a une petite idée ?
romain.barraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 12h28   #3
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
En fonction de la marque que choisi l'utilisateur tu peux pas compter le nombre de produit que tu as pour cette marque et generer ainsi une liste deroulante avec ces "x" entrées ?
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 14h52   #4
Invité régulier
 
Inscription : février 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 19
Points : 5
Points : 5
je pourrais éventuellement faire ça mais mon problème est :
comment intégrer automatiquement ces données dans cette liste (d'un point de vue technique )?
merci

romain
romain.barraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 08h26   #5
Membre chevronné
 
Avatar de pop_up
 
Inscription : avril 2006
Messages : 833
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 833
Points : 690
Points : 690
En fonction du premier choix de l'utilisateur sur la marque tu compte combien tu as de produits avec cette marque (select COUNT(*) FROM ... WHERE MARQUE="toto")

Ensuite ca te donne donc le nombre d'enregistrements de ta prochaine liste deroulante donc t'as plus qu'a faire une fonction php pour generer ca non ?

Dis moi si j'ai mal compris
pop_up est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 12h19   #6
Invité régulier
 
Inscription : février 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 19
Points : 5
Points : 5
en fait ce qu'il me manque c'est cette fonction php ...

merci pour ton aide
romain.barraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 17h49   #7
Membre du Club
 
Inscription : octobre 2005
Messages : 112
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 112
Points : 65
Points : 65
Envoyer un message via Skype™ à lebreton22
si tu adaptes ceci à tes tables, ça devrait fonctionner.
Je pense que tu as prévu un champ delaison entre tes deux tables
Code :
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
<?php require_once('../Connections/perso.php'); ?>
 
<?php
 
mysql_select_db($database_perso, $perso);
 
$query_rsformation = "SELECT * FROM formation_pe1";
 
$rsformation = mysql_query($query_rsformation, $perso) OR die(mysql_error());
 
$row_rsformation = mysql_fetch_assoc($rsformation);
 
$totalRows_rsformation = mysql_num_rows($rsformation);
 
 
 
mysql_select_db($database_perso, $perso);
 
$query_rssous_groupe = "SELECT * FROM sous_groupe_pe1";
 
$rssous_groupe = mysql_query($query_rssous_groupe, $perso) OR die(mysql_error());
 
$row_rssous_groupe = mysql_fetch_assoc($rssous_groupe);
 
$totalRows_rssous_groupe = mysql_num_rows($rssous_groupe);
 
?>
 
<?
 
 
 
//-- récupération des informations de la premiere table (formation)--
 
$nbformation = 0;
 
 
 
$SQL="SELECT * FROM formation_pe1 ";
 
$exec_formation =@mysql_query($SQL);
 
while($row_formation = mysql_fetch_array($exec_formation))
 
{
 
	$nbformation = $nbformation+1;
 
		IF ($nbformation==1)
 
	{
 
		$idformation="'$row_formation[ID_formation]'";
 
		$valformation="'$row_formation[formation]'";
 
	}
 
		else
 
		{
 
			$idformation="$idformation,'$row_formation[ID_formation]'";
 
			$valformation="$valformation,'$row_formation[formation]'";
 
		}
 
}
 
//-- FIN récupération des informations de la premiere table --
 
 
 
//-- récupération des informations de la deuxieme table (sous_groupe)--
 
$nbsous_groupe = 0;
 
$nbsous_groupe2 = 0;
 
$SQL="SELECT * FROM sous_groupe_pe1 ";
 
$exec_sous_groupe =@mysql_query($SQL);
 
while($row_sous_groupe = mysql_fetch_array($exec_sous_groupe))
 
{
 
	$nbsous_groupe2 = $nbsous_groupe2+1;
 
		IF ($nbsous_groupe2==1)
 
	{
 
		$idsous_groupe="'$row_sous_groupe[ID_formation]'";
 
		$valsous_groupe="'$row_sous_groupe[sous_groupe]'";
 
	}
 
		else
 
		{
 
			$idsous_groupe="$idsous_groupe,'$row_sous_groupe[ID_formation]'";
 
			$valsous_groupe="$valsous_groupe,'$row_sous_groupe[sous_groupe]'";
 
		}
 
}
 
//-- FIN récupération des informations de la deuxieme table table --
 
 
 
//création des tableau récupérant les données des TABLES
 
 
 
echo "<form name='form' method='post' action='envoyer_pe1.php'>
 
 
 
<script language='javascript'>;
 
var test ;
 
var clear ;
 
var nb ;
 
var idformation = new Array($idformation);
 
var formation = new Array($valformation);
 
var idsous_groupe = new Array($idsous_groupe);
 
var sous_groupe = new Array($valsous_groupe);
 
 
 
</script>"
 
 
 
 ?>
 
<style type="text/css">
 
<!--
 
.Style1 {
 
	color: #0000FF;
 
	font-weight: bold;
 
	font-family: Verdana, Arial, Helvetica, sans-serif;
 
}
 
-->
 
</style>
 
 
 
<h2 align="center" class="Style1">Listes li&eacute;es</h2>
<h2 align="center" class="Style1">
  <script LANGUAGE="javascript">var tes=new Array('Effectuez un choix');
 
 
 
document.WRITE('<select name=formation onchange=verifcontata()>');
 
document.WRITE('<option>Effectuez un choix</option>');
 
FOR(var i = 0; i < idformation.length; i++)
 
   {
 
    document.WRITE('<option value='+ idformation[i] +'>' + formation[i] + '</option>');
 
   }
 
document.WRITE('</select>');
 
 
 
FUNCTION verifcontata() 
 
{
 
nb=0
 
	FOR(var i = 0; i < idsous_groupe.length; i++)
 
	{
 
		IF (idsous_groupe[i] == document.form.formation.value) 
 
		{
 
		nb=nb+1;
 
			form.sous_groupe.options[nb] = new OPTION (sous_groupe[i]);
 
		}
 
		IF (idsous_groupe[i] !== document.form.formation.value) 
 
		{
 
			form.sous_groupe.options[nb+1] = NULL;
 
		}
 
	}
 
nb=0
 
}
 
 
 
document.WRITE('<select name=sous_groupe>');
 
document.WRITE('<option>Effectuez un choix</option>');
 
document.WRITE('</select>');
 
 
 
  </script>
 
</h2>
<p>&nbsp;</p>
 
  <input type='submit' name='Submit' value='Envoyer'></form>
 
  <?
 
mysql_close();
 
?>
 
  <?php
 
mysql_free_result($rsformation);
 
 
 
mysql_free_result($rssous_groupe);
 
?>
 
</p>
__________________
lebreton22 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2007, 18h35   #8
Invité régulier
 
Inscription : février 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 19
Points : 5
Points : 5
merci beaucoup pour ton aide je vais essayer

romain
romain.barraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h03.


 
 
 
 
Partenaires

Hébergement Web