bonjour,
Je réalise un formulaire de recherche renvoyant vers une bdd. Lorsque dans le champs recherche rien n'est saisie, la liste de tout les livres de la base s'affiche (ça c'est ok dans mon code).
Lorsque l'on saisi un mot, mon code doit rechercher si il y a des livres correspondants et les classer par ordre alphabétique. J'ai bien compris qu'il faut une requete de type LIKE %% mais il y a des erreurs et mon code ne marche pas. Comment insérer le POST dans la requete pour que le mot saisie fasse partie de la requete? D'ailleurs je ne suis meme pas sure que ce soit la bonne méthode à adopter.
Merci d'avance pour votre aide, voici mon code:
<!doctype html>
<html lang="fr">
<head>
<title>Formulaires - Exemple 2</title>
<meta charset="utf-8">
</head>
<body>
<?php
$Connexion = mysql_connect("localhost", "root", "root");
$connexionbase = mysql_select_db("exercices_php");
?>
<form method="post">
<p>
<label><strong>Recherche de livres </strong></label>
<p><label>Titre </label>
<input type="text" name="titre" value="" />
</p>
<p>
<input type="submit" name="rechercher" value="rechercher" />
</p>
</form>
<?php
if (isset($_POST['rechercher'])) {
// à l'aide de la fonction "empty", on vérifie que quelque chose a bien été saisi
if (!empty($_POST['titre']))
{ $requetea="SELECT titre FROM livre WHERE titre LIKE %'.$_POST['rechercher'].'%";
$reqa = mysql_query($requetea);
// on va scanner tous les tuples un par un
while ($dataa = mysql_fetch_array($reqa)) {
// on affiche les résultats
echo ''.$dataa['titre'].'<br />';
}
mysql_free_result ($reqa);
}
else
{ $requete="SELECT titre FROM livre";
$req = mysql_query($requete);
// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {
// on affiche les résultats
echo ''.$data['titre'].'<br />';
}
mysql_free_result ($req);
}
mysql_close ();
}
?>
</body>
</html>