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 08/11/2007, 15h47   #1
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Par défaut [SQL] Requête SQL en fonction d'un choix de listbox

Salut ^^
J'aurais besoin de votre science !
Voilà je suis censé faire un exercice en PHP consistant à simuler un service de Vidéo-club.
Grâce au PHP j'arrive à me connecter à une base de données MySQL et à afficher le contenu des tables.
Seulement je suis coincé au moment ou je dois, grâce à une listebox, afficher les films appartenant à une catégorie.
Par exemple, je choisis dans la liste la catégorie "Comédie", je valide grâce à un bouton, et ça m'emmène sur une page m'affichant tous les films ayant pour valeur du champs "Type", "AVE" (pour "Aventure").
En SQL ça donnerait "SELECT * FROM films WHERE Type=AVE".

Voici quelques morceaux de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Le form de la sélection du type de film
<form action="page4.php" method="get">
<table align="center">
	<tr>
		<td>
			<select name="type">
				<option value="AVE">Aventure</option>
				<option value="COM">Comédie</option>
				<option value="DRA">Drame</option>
				<option value="POL">Policier</option>
			</select>
		</td>
		<td>
			<input type="submit" value="Envoi">
		</td>
	</tr>
</table>
</form>
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
// Le code principal de la page suivante
<?php
	// Connection à la base de données
	mysql_connect("localhost", "root");
	mysql_select_db("videoclub");
	// Requête SQL
	$reponse=mysql_query("SELECT * FROM films ORDER BY Titre") or die(mysql_error());
?>
<table border=1>
	<tr>
		<th>ID</th>
		<th>Titre</th>
		<th>R&eacute;alisateur</th>
		<th>Producteur</th>
		<th>Acteurs</th>
		<th>Ann&eacute;e</th>
		<th>Type</th>
	</tr>
<?php
	while($donnees=mysql_fetch_array($reponse))
	{
?>
		<tr>
			<td><?php echo $donnees['id_film']; ?>&nbsp;</td>
			<td><?php echo $donnees['Titre']; ?>&nbsp;</td>
			<td><?php echo $donnees['Réalisateur']; ?>&nbsp;</td>
			<td><?php echo $donnees['Producteur']; ?>&nbsp;</td>
			<td><?php echo $donnees['Acteurs']; ?>&nbsp;</td>
			<td><?php echo $donnees['Année']; ?>&nbsp;</td>
			<td><?php echo $donnees['type']; ?>&nbsp;</td>
		</tr>
<?php
	}
?>
</table>
<?php
	// Fermeture de la base
	mysql_close();
?>
<table align="center" border="0" width="80%">
	<tr>
		<td width="50%" align="right">
			<form action="page2.php">
				<input type="submit" value="Autre type de film">
			</form>
		</td>
		<td width="50%" align="left">
			<form action="page1.php">
				<input type="submit" value="Retour accueil">
			</form>
		</td>
	</tr>
</table>
Dans cet exemple, si j'appuie sur le bouton d'envoie lors du choix du type, ça envoie toujours le même résultat, quel que soit le type sélectionné.

Mon problème est là : comment afficher le contenu en fonction du type sélectionné ?
J'ai bien pensé à un session_start(), puis un $_SESSION['Type']=$_POST['Type] mais je ne sais pas comment bien organiser tout ça.

J'espère avoir été assez clair et que vous pourrez m'aider.

Merci beaucoup !
Lenezir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 16h03   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Il faudrait rajouter une condition dans page4 pour rechercher selon un type si le type est spécifié. Dans ton cas, ca pourrait donner :

Code :
1
2
3
4
5
6
 
if(isset($_POST['type'])){
$reponse=mysql_query("SELECT * FROM films where type = '".$_POST['type']."'ORDER BY Titre") or die(mysql_error());
}else
{
$reponse=mysql_query("SELECT * FROM films ORDER BY Titre") or die(mysql_error());}
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 16h08   #3
Membre du Club
 
Avatar de Lenezir
 
Inscription : février 2006
Messages : 129
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : février 2006
Messages : 129
Points : 56
Points : 56
Super génial ça marche merci merci merci merci !!!
Lenezir 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 00h35.


 
 
 
 
Partenaires

Hébergement Web