Problème de recherche dans une table php

juju_blok -  
 juju_blok -
Bonjour,

Je suis documentaliste, et je commence à manipuler le PHP/MySql.
Je souhaiterai ajouter sur mon site la liste des livres disponibles, je l'ai donc ajouter à ma base de données.
Sur une page php contenant la liste des titres, j'ai ajouter un formulaire permettant la recherche dans ces titres.
Quand on écrit l'intégralité du titre, il me le trouve et me l'affiche sur une nouvelle page créer pour.
Or quand on écrit qu'une partie du titre, il n'affiche aucun résultat, ce qui est génant. Je souhaiterait donc modifier mon code php pour avoir la possiblité de trouver un livre meme si l'on écrit qu'une partie du titre.
Je vous remercie de votre compréhension.
Ci-joint mes 2 codes de recherches.

Code 1(recherche.php):

<link rel="stylesheet" media="screen" type="text/css" title="Design" href="recherche.css" />
<form action="recherche_post.php" method="post">
<p class="recherche"><input type="text" name="livre" id="livre" size="30" /> <input type="submit" value="Rechercher" class="bouton" />



Code 2(recherche_post.php):

<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=liste_de_livre', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM liste WHERE titre=\'' . $_POST['livre'] . '\'') or die(print_r($bdd->errorInfo()));
while ($donnees = $reponse->fetch())
{?>
<p>
<?php echo $donnees['titre']; ?>
<?php
}

$reponse->closeCursor();
?>

A voir également:

2 réponses

TechAndCo Messages postés 254 Statut Membre 20
 
Bonjour,

Tu peux utiliser l'instruction "LIKE" pour recherche une chaîne de caractère en base de données.

Fais une petite recherche sur google en tapant: "mysql LIKE".

Cordialement.

TechAndCo
0
juju_blok
 
Merci à toi techAndCo
Grace a toi, j'ai réussis a y arriver.

Dans ma requète MySql, il suffisait de remplacer

$reponse = $bdd->query('SELECT * FROM liste WHERE titre=\'' . $_POST['livre'] . '\'') or die(print_r($bdd->errorInfo()));

par

$reponse = $bdd->query("SELECT * FROM liste WHERE titre LIKE '%". $_POST['livre'] ."%'") or die(print_r($bdd->errorInfo()));
0