Page 1 sur 1

formulaire recherche

Posté : 31 janv. 2011, 12:24
par claire15
Bonjour j'ai un petit probleme, j'ai créer une dvdtheque avec page index a partir du quel je peux saisir un nouveau dvd, faire afficher la liste des film et faire une recherche. J'ai un soucis avec ce dernier dont voici le code. En faite mon probleme je pense c'est que je n'arrive pas a récuperer la valeur du formulaire recherche. La recherche se fait par le réalisateur. Une fois un nom de realisateur inscrit, je voudrais que toute les infos apparaissent (film, genre...) voila ou j'ensuis

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>DVDthèque</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/style.css" />
</head>
<body>
<div id="page">
<div id="entete">

</div>

<div id="menu">

<ul id="liste_menu">
<a href="saisie.php">Nouveau DVD</a>
<br/>
<a href="liste.php">Liste des films</a>
<br/>
<a href="recherche.php">Recherche</a>
</ul>
</div>

<div id="contenu">
<!-- CONTENU DE LA PAGE -->
<?php
if (isset($_GET["page"]))
{
$page = $_GET["page"];

if ($page == "saisie")
{
include ("saisie.php");
}
else if ($page == "liste")
{
include ("liste.php");
}
else if ($page == "supprimer")
{
include ("supprimer.php");
}

}
?>

<FORM method="post" NAME="Recherche">
<label for"realisateur">Réalisateur:</label>
<br/>
<!--saisie du realisateur-->
<input type="texte" id="realisateur" name="realisateur" value="" />
<input type="submit" value="Recherche" />
</form>

<?php
$base = mysql_connect("localhost", "root", "");
//connexion � la base de donn�es
mysql_select_db("dvdtheque1",$base);
mysql_query("SET NAMES UTF8");

// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
// la requete mysql
$sql = mysql_query("SELECT films, realisateur, genre, resume, type FROM film WHERE realisateur=('%$recherche%') ") or die (mysql_error());
// affichage du résultat
while(list( $films, $realisateur,$genre, $resume, $type )=mysql_fetch_array($sql)){
echo 'realisateur : '.$realisateur.' <br />';
echo 'films : '.$films.' <br />';
echo 'genre : '.$genre.' <br />';
echo 'resume : '.$resume.'<br />';
echo 'type : '.$type.'<br />';
}
mysql_close();


?>

</body>
</html>

Re: formulaire recherche

Posté : 31 janv. 2011, 12:30
par Mazarini
Bonjour,

SELECT films, realisateur, genre, resume, type FROM film WHERE realisateur like '%$recherche%'

Mais je prefererai faire sans clause where lorsque $recherche est vide.

Re: formulaire recherche

Posté : 31 janv. 2011, 12:36
par claire15
merci de ta réponse
je suis vraiement débutante, et en faite je ne vois pas comment faire le lien entre ce qui est indiqué dans le formulaire et ce que je vx affiché

Re: formulaire recherche

Posté : 31 janv. 2011, 12:46
par Mazarini
Avant :
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
// la requete mysql
$sql = mysql_query("SELECT films, realisateur, genre, resume, type FROM film WHERE realisateur=('%$recherche%') ") or die (mysql_error());
Après
// Récupère la variable
if isset($_POST['recherche'])
{
$recherche = ' WHERE realisateur like \'%' . $_POST['recherche'] . '%\'';
}
else
{
$recherche = '';
}  
// la requete mysql
$sql = mysql_query('SELECT films, realisateur, genre, resume, type FROM film'.$recherche) or die (mysql_error());
En fait, tu recupère la zone du formulaire dans un tableau $_POST lorsque tu valides le formulaire. L'indice du tableau est le nom (name) de la zone de saisie du formulaire ($_POST['recherche'])

Re: formulaire recherche

Posté : 31 janv. 2011, 13:01
par claire15
Ok ,
J'ai fait le changement, donc si je comprend bien, maintenant il faut que je fasse afficher la valeur de ma variable?
echo $recherche [""]; ??

Re: formulaire recherche

Posté : 31 janv. 2011, 14:04
par Mazarini
<!--saisie du realisateur-->
<input type="texte" id="realisateur" name="realisateur" value="<?php if (isset($_POST['realisateur'])) echo $_POST['realisateur']; ?>" />

et surtout : remplace $_POST['recherche'] par $_POST['realisateur'] puisque le nom de la zone est realisateur dans le formulaire

Re: formulaire recherche

Posté : 31 janv. 2011, 15:16
par claire15
ok merci mais je lutte encore voila ou j'en suis

<FORM method="post" NAME="Recherche">
<label for"realisateur">Réalisateur:</label>
<br/>

<!--saisie du realisateur-->
<input type="texte" id="realisateur" name="realisateur" value="<?php if (isset($_POST['realisateur'])) echo $_POST['realisateur']; ?>"<input type="submit" value="Enregistrer" />
</form>

<?php
$base = mysql_connect("localhost", "root", "");
//connexion � la base de donn�es
mysql_select_db("dvdtheque1",$base);
mysql_query("SET NAMES UTF8");

// Récupère la variable
if (isset($_POST['realisateur']))
{
$recherche = ' WHERE realisateur like \'%' . $_POST['realisateur'] . '%\'';
}
else
{
$recherche = '';
}
// la requete mysql
$sql = mysql_query('SELECT films, realisateur, genre, resume, type FROM film'.$recherche) or die (mysql_error());
// affichage du résultat

mysql_close();

?>

Re: formulaire recherche

Posté : 31 janv. 2011, 15:22
par Mazarini
Ok, mais quel est ton problème actuel ?
Qu'est ce qui ne marche pas ou pas comme tu veux ?

Re: formulaire recherche

Posté : 31 janv. 2011, 15:39
par claire15
Et bien lorsque je valide rien apparait...

Re: formulaire recherche

Posté : 31 janv. 2011, 17:09
par Mazarini
quel est l'url du navigateur à ce moment ?
Est ce que le source de la page est vide aussi ?

Re: formulaire recherche

Posté : 31 janv. 2011, 20:02
par claire15