Affichage résultat

Julien87
Invité n'ayant pas de compte PHPfrance

01 févr. 2011, 11:52

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>

ViPHP
ViPHP | 2577 Messages

01 févr. 2011, 12:04

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 ?

Julien87
Invité n'ayant pas de compte PHPfrance

01 févr. 2011, 12:07

warning expected parameter ou ça affiche rien...

Julien87
Invité n'ayant pas de compte PHPfrance

01 févr. 2011, 12:41

Vraiment, personne ne peut-il m'aider ?!je suis vraiment paumé là...!

Mammouth du PHP | 672 Messages

01 févr. 2011, 13:09

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