Moteur de recherche simple en PHP

Résolu
LOLO -  
 Lolo -
Bonjour,

J'apprends tout doucement en autodidacte le langage de programmation PHP et MySql.

Je suis entrain de tenter la mise en place d'un site internet type Album photos.

Je souhaiterais mettre en place un moteur de recherche simple. Il fonctionnerait de la façon suivante : Taper votre recherche dans un formulaire

<p> Rechercher une photo </p>
<form method="post" action="rechercher.php"/>
<input type="text" name="photos"/>
<input type="submit" value="Ok"/>



vous êtes redirigés vers une page nommée rechercher.php qui a pour but de présenter la sélection.

J'ai créé la bdd 'album_photos', table 'cliches'.

Mon problème est : je ne sais pas comment récupérer ma recherche $_POST['photos'] et faire le lien avec la base de données pour qu'il affiche la recherche.

Mon code :

<?php
try
{
// On se connecte à MySQL
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);


$req = $bdd->prepare('SELECT * FROM cliches WHERE nom = ? OR categorie = ? OR prix = ?');
$req->execute(array($_POST['nom'], $_POST['categorie'], $_POST['prix']));

// On affiche chaque entrée une à une
while ($donnees = $req->fetch())
{
?>
<p>

</p>
<?php
}

$req->closeCursor(); // Termine le traitement de la requête

}
catch(Exception $e)
{
// En cas d'erreur précédemment, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}
?>

Merci pour votre aide...

A voir également:

2 réponses

Utilisateur anonyme
 
Bonjour,

Je ne vois pas trop le lien entre votre formulaire qui ne contient qu'un champ de recherche 'photos' et les données que vous voulez récupérer à savoir $_POST['nom'], $_POST['categorie'], $_POST['prix']
Il faudrait que ces champs là existent dans le formulaire, à la place de
<input type="text" name="photos"/>
mettre trois champs

<input type="text" name="nom"/>
<input type="text" name="categories"/> ou un <select name="categories"></select>
<input type="text" name="prix"/>
0
LOLO
 
Merci beaucoup !
Ca semble avoir résolu une partie de mon problème.
J'en ai un autre ;-) :

Qu'en je tente d'ouvrir la page rechercher.php sur mon serveur il indique :


Notice: Undefined index: categorie in C:\wamp\www\album_photos\rechercher.php on line 19
Notice: Undefined index: nom in C:\wamp\www\album_photos\rechercher.php on line 19
Notice: Undefined index: prix in C:\wamp\www\album_photos\rechercher.php on line 19

Pour tant les champs existent dans la bdd ???

Merci pour votre aide encore une fois...
0
Utilisateur anonyme
 
montrez moi la ligne 19 on y verra plus clair 8-)
0
Utilisateur anonyme
 
Ce n'est pas celle-ci ?
$req->execute(array($_POST['nom'], $_POST['categorie'], $_POST['prix']));
0
LOLO
 
tout à fait !!!
0
Utilisateur anonyme
 
Ca veut dire que vous n'avez rien posté avec votre formulaire tout simplement.

Vous avez bien une première page du genre index.html qui appelle ensuite une autre page, rechercher.php
<p> Rechercher une photo </p>
<form method="post" action="rechercher.php"/>
<input type="text" name="nom"/>
<input type="text" name="categories"/> o
<input type="text" name="prix"/> 
<input type="submit" value="Ok"/> 
</form>


Vous avez bien fermé le form ?
0
Utilisateur anonyme
 
Bonjour,

S'il n'y a que des ... c'est que votre image n'est pas bonne, du moins le chemin d'accès aux images.
Ceci dit vu le code que j'ai écrit ce n'est pas étonnant... désolé.
Il faut mettre le chemin web, pas le chemin disque de votre machine.

Donc probablement ceci :
echo '<img src="album_photos'.$donnees['chemin'].'" alt="..."/>';
0