Salut

J'ai fais un code qui fonctionne bien, mais avec une faute de manipulation je l'ai effacé et lorsque je l'ai répété il ne fonctionne plus !
C'est un formulaire de recherche, j'ai testé le contenu de $_POST ça fonctionne, je pense que j'ai une faute dans la requête SELECT.

Est ce que je peux affecter une valeur dans une requête directe ?

formulaire recherche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
 
<body>
<h3> Recherche simple </h3>
<p> Saisissez votre requête puis cliquez sur le bouton Titre, Artiste ou Film pour valider. </p>
<form action="recherche_simple.php" method="post">
<input type="text" name="recherche" id="recherche" rows="50" cols="200"  />
<input type="submit" name="titre" id="titre"  value="Titre"/>
<input type="submit" name="artiste" id="artiste" value="Artiste" />
<input type="submit" name="film" id="film" value="Film" />
</form>
</body>
</html>
recherche_simple.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
try
{
	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
	$bdd = new PDO('mysql:host=localhost;dbname=projet', 'root', '', $pdo_options);
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
?>
<?php
if ((isset($_POST['titre'])) || (isset($_POST['artiste'])) || (isset($_POST['film'])))
{ 
  if (isset($_POST['titre']))
  {
	$titre = $_POST['recherche'];
	print_r($_POST);
	$req = $bdd->query('SELECT titre, artiste, quantite FROM cd_audio WHERE titre = \'' . $titre . ' \'');
	while ($resultat = $req->fetch())
	{
		echo 'la chanson ' . $titre . ' de l\'artiste ' . $resultat['artiste'] . ' est: ';
		    if ($resultat['quantite'] > '0')
		    {
			    echo '<br>Diponible<br><a href="acheter.php">Acheter</a>'; 
			}
			else 
			{
				echo 'Non disponible';
			}
			$req->closeCursor();
 
	}
 }
	else if (isset($_POST['artiste'])) 
	{
		$artiste = $_POST['recherche'];
		$req = $bdd->query('SELECT titre, artiste, quantite FROM cd_audio WHERE artiste = \'' . $artiste . ' \'');
		while ($resultat = $req->fetch())
		{
			$chansons = $req->fetchALL(PDO::FETCH_ASSOC);
			$total_chanson = count($chansons);
			echo 'les  chansons trouvés de l\'artiste ' . $artiste . ' sont: ' . $total_chanson . '';
 
		    foreach( $chansons as $chanson)
			{
				echo '<br>' . $chanson['titre'] . '';
			}
 
 
		}
		$req->closeCursor();
	}
	else if (isset($_POST['film']))
	{
		$film = $_POST['recherche'];
		$req = $bdd->query('SELECT titre, realisateur, quantite FROM cd_film WHERE titre = \'' . $film . ' \'');
		while ($resultat = $req->fetch())
	  {
		echo 'le film ' . $film . ' réalisé par ' . $resultat['realisateur'] . ' est: ';
		    if ($resultat['quantite'] > '0')
		    {
			    echo '<br>Diponible<br><a href="acheter.php">Acheter</a>'; 
			}
			else 
			{
				echo 'Non disponible';
			}
	  }
	$req->closeCursor();
	}
}
else echo 'aucun résultat ne correspond à votre recherche';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
 
<body>
</body>
</html>
erreur:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de 'es ma femme '' à la ligne 1' in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\mediatheque\recherche_simple.php:19 Stack trace: #0 C:\Program Files (x86)\EasyPHP-5.3.8.0\www\mediatheque\recherche_simple.php(19): PDO->query('SELECT titre, a...') #1 {main} thrown in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\mediatheque\recherche_simple.php on line 19