Page 1 sur 1

Affichage résultat

Posté : 01 févr. 2011, 11:52
par Julien87
Bonjour,

Via une base de données sur wampserveur, je souhaiterai afficher les résultats d'une seule ligne de ce tableau.
Ma base comprend le titre des films, le nom du réalisateur, le type de support (dvd, blue-ray) et un résumé du film.
Sur mon site, j'ai créé un champ de recherche dans lequel je rentre le nom du réalisateur et je clique sur "rechercher".
En faisant ça, je souhaiterai faire afficher le titre des films qui correspondent au nom du réalisateur, le résumé et le type de support (dvd, blue-ray). Mais seulement ça !
Cependant, ou ça m'affiche tous les réalisateurs ou ça m'affiche une erreur...!Je suis un peu perdu, quelqu'un pourrais me renseigner ?
Voilà mon code:


<?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" title="Nouveau DVD" id="bouton"></a>

<br/>
<a href="liste.php"title="Liste des films" id="bouton2"></a>
<br/>
<a href="recherche.php"title="Recherche" id="bouton3"></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 == "recherche")
{
include ("recherche.php");
}

}
?>


<form method ="post" action="recherche.php">
<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);


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


$resultat = "SELECT films, realisateur, genre, resume, type FROM film'.$recherche" );
$result = mysql_num_rows($resultat);


mysql_close();




?>
</div>
<div id="pied">
<p>(c) Julien Brt - 2010</p>
</div>




</body>
</html>

Re: Affichage résultat

Posté : 01 févr. 2011, 12:04
par Mazarini
Bonjour,
...
Cependant, ou ça m'affiche tous les réalisateurs ou ça m'affiche une erreur...!Je suis un peu perdu, quelqu'un pourrais me renseigner ?
...
Oui, mais laquelle erreur ?

Re: Affichage résultat

Posté : 01 févr. 2011, 12:07
par Julien87
warning expected parameter ou ça affiche rien...

Re: Affichage résultat

Posté : 01 févr. 2011, 12:41
par Julien87
Vraiment, personne ne peut-il m'aider ?!je suis vraiment paumé là...!

Re: Affichage résultat

Posté : 01 févr. 2011, 13:09
par macgawel
Bonjour.

1. Merci d'utiliser les balises qui vont bien (bouton PHP) pour ton code, c'est plus lisible...
Et profite-en pour l'indenter correctement !

2. Rien à voir, mais quand-même :
Pour ton menu, tu utilises une liste (balise <ul>) => les liens du menu sont des éléments de cette liste (utilise la balise <li>)
<ul id="liste_menu">
<li><a href="saisie.php" title="Nouveau DVD" id="bouton"></a></li>
<li><a href="liste.php"title="Liste des films" id="bouton2"></a></li>
<li><a href="recherche.php"title="Recherche" id="bouton3"></a></li>
</ul>
3. Là encore, pas grand-chose à voir avec ton problème...
Pour chercher la page à afficher, ton système à base de if .. else n'est pas top : imagine avec 10 pages ce que ça donnera...Voire tu peux te faire un Array contenant les différentes pages acceptables, et utiliser in_array() :) (comme ça il te suffira de rajouter ta nouvelle page dedans pour l'accepter)

4. Normallement, le message d'erreur doit t'indiquer à quelle ligne est ton Warning..., ça devrait te donner une bonne indication quant au paramètre qui pose problème...
A faire (dans le désordre), histoire de débugger :
- Rajoute des or die('message explicite') à toutes les instructions mysql_ (prends exemple sur ta requête).
- Au passage tu peux rajouter des echo réguliers, pour voir s'il y a plantage à un endroit.
- Mets toute la requête en variable :
$recherche = 'SELECT films, realisateur, genre, resume, type FROM film';
if (isset($_POST['realisateur'])) {
	$recherche .= ' WHERE realisateur like \'%' . $_POST['realisateur'] . '%\'';
}
$sql = mysql_query($recherche) or die (mysql_error());
Et fais un echo $requete; (pour voir si elle est correcte, et la passer dans PHPMySQL)
- Affiche le résultat ! echo $result;
- Fais un var_dump($_POST); pour voir ce que contient ta variable $_POST