Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 17/08/2007, 16h18   #1
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Par défaut [SQL] Liste déroulante multiple et requête SQL

Bonjour à tous!!

Voila la situation : J'ai une (meme plusieurs mais c'est les memes cas donc memes problemes) liste deroulante multiple alimenté par une des colonnes d'une table de ma bdd mysql.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
	<td valign='center' width='25%' align='center'>
	<font face='verdana' size='2'>
	Numero de matricule :<br>
	<select name='matricule[]' align='center' multiple='multiple' size='10'>
	<?php
		$sql = "select distinct matricule from $moisannee order by matricule ASC";
		$res = mysql_query($sql);
		while($val=mysql_fetch_array($res)) {
			echo "<option>".$val['matricule']."</option>\n";
		};
	?>
	</select>
	<br><br>OU<br><br>
	<input type='checkbox' name='toutmatricule' value='tout'>Tout
	</font>
	</td>
L'utilisateur peut donc soit sélectionner un element de la liste soit plusieurs.

Je souhaite ensuite pouvoir faire des requetes sql selon les choix de l'utilisateur. Pour un choix, pas de probleme. Mais lorsque l'utilisateur en selectionne plusieurs, la ca coince.

Code :
1
2
3
4
5
6
7
 
$matricule = array() ;
$matricule=$_POST['matricule'];
echo "<font face='verdana' size=2><br>Vous avez choisis le(s) matricule(s) suivant(s) :";
for ($i=0; $i<count($matricule); $i++){
	echo "<br><b> " . $matricule[$i] . "</b>";
};
Ce code permet d'afficher tous les choix de l'utilisateur, ca fonctionne bien.

Mais comment faire pour récuperer toutes les valeurs et les inclure dans ma requete (en sachant qu'il n'y a pas de nombre fixe de choix dans ma liste d'element)...?Je precise que j'arrive à recuperer une valeur : la derniere...

En esperant avoir été clair dans mon explication

Merci de votre aide

Laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 16h30   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
pour récupérer plusieurs valeurs tu as besoin d'une requête dans ce genre :
Code SQL :
SELECT * FROM tableMoisannee WHERE matricule IN('25', '24', '3')
tu peux la construire comme ça :

Code :
1
2
3
4
5
6
7
8
9
$listeMatriculeSQL = array();
 
foreach ($_POST['matricule'] as $matricule) {
    $listeMatriculeSQL[] = '\'' . mysql_real_escape_string($matricule) . '\'';
}
 
$req = implode(', ', $listeMatriculeSQL);
 
$requete = "SELECT * FROM tableMoisannee WHERE matricule IN($req)";
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 11h30   #3
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
Je relance le sujet car je suis bloqué et je dois finir mon projet rapidement...

Donc voila : j'ai des listes déroulantes à choix multiples.. j'arrive à afficher mes choix séléctionner avec :

Code :
1
2
3
4
5
6
7
 
	$carte = array() ;
	$carte=$_POST['carte'];
	echo "<font face='verdana' size=2><br>Vous avez choisis la (ou les) carte(s) suivant(s) :";
	for ($i=0; $i<count($carte); $i++){
		echo "<br><b> " . $carte[$i] . "</b>";
	};
j'aimerai savoir maintenant comment on fait pour récupérer CHAQUE valeur choisi et les utiliser ensemble dans une requete mysql... (il peut il y en avoir 0,1 ou plusieurs éléments de choisi dans ces listes deroulante...)

merci pour votre aide...

laeti
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h31   #4
Membre éprouvé
 
Homme
Développeur informatique
Inscription : janvier 2005
Messages : 349
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 50
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : janvier 2005
Messages : 349
Points : 439
Points : 439
Salut,
ben la réponse t'a été donnée juste au dessus.
beeboo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 14h32   #5
Candidat au titre de Membre du Club
 
Inscription : juillet 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : juillet 2007
Messages : 60
Points : 13
Points : 13
je vais retester car j'ai modifié mon fichier depuis tout à l'heure... mais bon vu comment est mon script c'est pas tout simple...
laetiheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h57.


 
 
 
 
Partenaires

Hébergement Web