IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Requête SQL en fonction d'un choix de listbox


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de Lenezir
    Inscrit en
    Février 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Février 2006
    Messages : 129
    Points : 89
    Points
    89
    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 : 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
    // 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 : 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
    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 !

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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());}

  3. #3
    Membre régulier Avatar de Lenezir
    Inscrit en
    Février 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Février 2006
    Messages : 129
    Points : 89
    Points
    89
    Par défaut
    Super génial ça marche merci merci merci merci !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/03/2013, 13h20
  2. [AC-2003] Requête SQL avec SUM en fonction d'un attribut
    Par Linuss dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 30/05/2012, 09h10
  3. Réponses: 3
    Dernier message: 04/07/2008, 17h03
  4. [Débutant / SQL] Requête avec la fonction MAX
    Par bugmenot dans le forum Access
    Réponses: 3
    Dernier message: 14/04/2006, 10h43
  5. Réponses: 2
    Dernier message: 06/06/2005, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo