formulaire recherche

claire15
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 12:24

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>

ViPHP
ViPHP | 2577 Messages

31 janv. 2011, 12:30

Bonjour,

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

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

claire15
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 12:36

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é

ViPHP
ViPHP | 2577 Messages

31 janv. 2011, 12:46

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'])

claire15
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 13:01

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 [""]; ??

ViPHP
ViPHP | 2577 Messages

31 janv. 2011, 14:04

<!--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

claire15
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 15:16

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();

?>

ViPHP
ViPHP | 2577 Messages

31 janv. 2011, 15:22

Ok, mais quel est ton problème actuel ?
Qu'est ce qui ne marche pas ou pas comme tu veux ?

claire15
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 15:39

Et bien lorsque je valide rien apparait...

ViPHP
ViPHP | 2577 Messages

31 janv. 2011, 17:09

quel est l'url du navigateur à ce moment ?
Est ce que le source de la page est vide aussi ?

claire15
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 20:02