Moteur de recherche simple en PHP
Résolu
LOLO
-
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...
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:
- Moteur de recherche simple en PHP
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Iphone 14 simple - Guide
- Copernic moteur de recherche - Télécharger - Navigateurs
- Copernic Desktop Search - Télécharger - Utilitaires
2 réponses
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"/>
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"/>
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 :
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="..."/>';
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...
$req->execute(array($_POST['nom'], $_POST['categorie'], $_POST['prix']));
Vous avez bien une première page du genre index.html qui appelle ensuite une autre page, rechercher.php
Vous avez bien fermé le form ?