Fonction recherche php avec liste déroulante

Fermé
rgdu86 Messages postés 275 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 juillet 2014 - 19 oct. 2007 à 16:39
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 - 20 oct. 2007 à 21:28
Bonjour à tous,

Je suis en train de créer un site Internet et j'aimerais créer une fonction recherche avec une liste déroulante. J'utilise une base de données mysql. Je ne sais pas comment afficher le résultat de ma sélection.

Si quelqu'un a une solution ...

Par avance merci.

R.G.
A voir également:

7 réponses

ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
19 oct. 2007 à 16:46
Bonjour, quel est le but de la liste déroulante?
0
rgdu86 Messages postés 275 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 juillet 2014 65
19 oct. 2007 à 17:04
Je m'explique plus en détails.

J'ai 2 tables dans ma base de données mysql. L'une d'elle est 'acteur'. Quand je sélectionne un des acteurs de ma liste déroulante, je veux après avoir cliqué sur 'Rechercher' il m'envoi sur la page qui se réfère à cet acteur.

R.G.
0
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
19 oct. 2007 à 17:18
D'accord,
nomons Form1 ce formulaire pour abréger, il contiendra ton formulaire. Voici ta page:

if(isset($_POST['acteur_oujesaispasc'estkoilenomduchamp'])){
//On a demandé un acteur; donc on se connetce a la base de données:
mysql_connect("serveur","username','pass");
mysql_select_db("mabasededonnees") or die(mysql_error());
$req=mysql_query("SELECT * FROM acteur WHERE nom=' ".$_POST['nom']." ' ");
$don=mysql_fetch_array($req); //On a ses données dans $don
echo $don['nom']; //affiche son nom etc...
}else{
//On n'a rien demandé et tu affiche le formulaire form1
}

C'est loin d'etre détaillé, et c'est même le strict minimum! Si tu ne connais pas le php, il vaut mieux l'apprendre, sinon, à toi de jouer!
0
rgdu86 Messages postés 275 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 juillet 2014 65
19 oct. 2007 à 18:05
Voilà le code de ma page recherche.php

Peux-tu me dire ce qui ne va pas, stp ?

<head>
<title> recherche </title>
<link rel = "stylesheet" type = "text/css" href = "style.css"/>
</head>

<body bgcolor = "#000000" text = "#FF0000" background = "photos/femme.jpg">
<form method = "post" action = "recherche.php">
<p><center><font size = "+2" face = "comic sans ms"><b>Recherche sur le site</b></font></p>
<br>
<form method = "POST" action = "TraiteForm.php">
<table face = "comic sans ms" border = "0" cellspacing = "50" cellpadding = "0">
<tr>
<td width = "75%" align = "left">
<?

require ("ProjetSecure/connect.php"); // connexion à la base de données

$RequeteFilm = "SELECT * FROM FILM ORDER BY CODEFILM";
$CurseurFilm = mysql_query($RequeteFilm,$CONNEXION);

echo "<font face = comic sans ms>";
echo "<h2>Sélectionner un film :</h2>";
echo "<SELECT NAME = film>";
echo "<OPTION SELECTED> -- Choisir un film -- </OPTION>";

while ($tupleFilm = mysql_fetch_array($CurseurFilm))
{
$annee = "";
$date = $tupleFilm["DATEFILM"];
$annee = $date[6].$date[7].$date[8].$date[9];
echo "<OPTION value = '$tuple[CODEFILM]'>";
echo $annee." - ";
echo $tupleFilm["TITREFILM"];
echo "</OPTION>";
}

echo "</SELECT></font><br>";
mysql_close($CONNEXION)
?>
</td>

<td width = "75%" align = "right">
<?

require("ProjetSecure/connect.php"); // connexion à la base de données

$RequeteActeur = "SELECT * FROM ACTEUR ORDER BY CODEACTEUR";
$CurseurActeur = mysql_query($RequeteActeur,$CONNEXION);

echo "<font face = 'comic sans ms'>";
echo "<h2>Sélectionner un acteur :</h2>";
echo "<SELECT NAME = 'acteur'>";
echo "<OPTION SELECTED> -- Choisir un acteur -- </OPTION>";

while ($tupleActeur = mysql_fetch_array($CurseurActeur))
{
echo "<OPTION value = '$tuple[CODEACTEUR]'>";
echo $tupleActeur["PRENOMACTEUR"]." ".$tupleActeur["NOMACTEUR"];
echo "</OPTION>";


}

echo "</SELECT></font>";



mysql_close($CONNEXION)
?>
</td>
</tr>
<tr>
<td colspan = "4" align = "center"><br><br>
<input type = "Submit" name = "Submit" value = "Rechercher">
</td>
</tr>
</table>
</center>
</form>
</body>

Par avance, merci.

R.G.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
19 oct. 2007 à 18:20
Ok, mais je ne vois aucune requete qui extrait la demande du type $_POST['acteur'] pour le nom de l'acteur ou autre, et rien ne permet de l'afficher.
Ex:
$req=mysql_query("SELECT * FROM acteur WHERE nom=' ".$_POST['nom']." ' ");
$don=mysql_fetch_array($req); //On a ses données dans $don
echo $don['nom'];

Tu le mets là où tu veux que ces informations s'affichent. Mais il faut d'abord tester si qqchose a été rentré. Tu vois ta page n'est qu'un formulaire, il faut traiter la demande. Or je ne vois rien qui traite une demande. Tu sais comment faire en php pour ça??
0
rgdu86 Messages postés 275 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 juillet 2014 65
19 oct. 2007 à 19:06
non je ne sais pas comment faire.

R.G.
0
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
20 oct. 2007 à 21:28
Ok. Je vais te dire vite fait, mais il serait beaucoup plus pratique, et vivement conseillé d'apprendre les interactions php-base de données, c'est très rapide (vas sur https://openclassrooms.com/fr/courses Par ailleurs, j'ai un peu modifié tonformulaire, il y avait pas mal d'erreurs (syntaxes, 2 balises <form> emboitées...)
!!Tout est sur une page recherche.php, c'est plus pratique si on vaut faire plusieurs recherches d'affilées

En gros, tes formulaires renvoient sur ta page recherche.php, mais après? qu'est qu'on fait? En fait, il faut que php récupère ces résultats, et on les traite avec une recherche sur ta base de données. Donc au début il y a ceci:

<head>
<title> recherche </title>
<link rel = "stylesheet" type = "text/css" href = "style.css"/>
</head>

<body bgcolor = "#000000" text = "#FF0000" background = "photos/femme.jpg">

<?php
if(isset($_POST['acteur'])){
//Vérifie qu'on a cherché un acteur ou un film avec le formulaire, ie on a déjà ouvert la page et valider dans le formulaire. Mais quoi?:
if(!empty($_POST['acteur'])){

//On a bien demandé un acteur, pas rien
//donc on se connetce a la base de données:
mysql_connect("serveur","username","'pass");
mysql_select_db("mabasededonnees") or die(mysql_error());
$req=mysql_query("SELECT * FROM ACTEUR WHERE CODEACTEUR=' ".$_POST['acteur']." ' ");
$don=mysql_fetch_array($req); //On a ses données dans $don
echo $don['NOMACTEUR']; //affiche son nom etc... , tu affiches ce que tu veux de lui/elle
mysql_close();

}
if(!empty($_POST['film'])){

//On a demandé un film
mysql_connect("serveur","username","'pass");
mysql_select_db("mabasededonnees") or die(mysql_error());
$req=mysql_query("SELECT * FROM FILM WHERE CODEFILM=' ".$_POST['film']." ' ");
$don=mysql_fetch_array($req); //On a ses données dans $don
echo $don['TITRE']; //affiche son nom etc... , tu affiches ce que tu veux du film
mysql_close();

}
}//On ferme la boucle qui vérifie l'existence d'une recherche
//Puis on affiche le formulaire

<form method = "post" action = "recherche.php">
<p><center><font size = "+2" face = "comic sans ms"><b>Recherche sur le site</b></font></p>
<br>

<table face = "comic sans ms" border = "0" cellspacing = "50" cellpadding = "0">
<tr>
<td width = "75%" align = "left">
<?

require ("ProjetSecure/connect.php"); // connexion à la base de données

$RequeteFilm = "SELECT * FROM FILM ORDER BY CODEFILM";
$CurseurFilm = mysql_query($RequeteFilm,$CONNEXION);

echo "<font face = comic sans ms>";
echo "<h2>Sélectionner un film :</h2>";
echo "<SELECT NAME = film>";
echo "<OPTION SELECTED VALUE=""> -- Choisir un film -- </OPTION>";

while ($tupleFilm = mysql_fetch_array($CurseurFilm))
{
$annee = "";
$date = $tupleFilm['DATEFILM'];
$annee = $date[6].$date[7].$date[8].$date[9];
echo "<OPTION value = '".$tuple['CODEFILM']."'>";
echo $annee." - ";
echo $tupleFilm["TITREFILM"];
echo "</OPTION>";
}

echo "</SELECT></font><br>";
mysql_close($CONNEXION)
?>
</td>

<td width = "75%" align = "right">
<?

require("ProjetSecure/connect.php"); // connexion à la base de données

$RequeteActeur = "SELECT * FROM ACTEUR ORDER BY CODEACTEUR";
$CurseurActeur = mysql_query($RequeteActeur,$CONNEXION);

echo "<font face = 'comic sans ms'>";
echo "<h2>Sélectionner un acteur :</h2>";
echo "<SELECT NAME = 'acteur'>";
echo "<OPTION SELECTED> -- Choisir un acteur -- </OPTION>";

while ($tupleActeur = mysql_fetch_array($CurseurActeur))
{
echo "<OPTION value = '".$tuple['CODEACTEUR']."'>";
echo $tupleActeur['PRENOMACTEUR']." ".$tupleActeur['NOMACTEUR'];
echo "</OPTION>";


}

echo "</SELECT></font>";



mysql_close($CONNEXION);
?>
</td>
</tr>
<tr>
<td colspan = "4" align = "center"><br><br>
<input type = "Submit" name = "Submit" value = "Rechercher">
</td>
</tr>
</table>
</center>
</form>
</body>
0