Moteur de recherche php

Fermé
Signaler
-
 Azepo -
Bonjour, j'aimerais faire un moteur de recherche qui quand je tape un mot clé, cela m'affiche tous les résultats sous forme de tableaux.

Par exemple je tape "chien" (mon site est un site de livre) il m'affiche tous les livres en rapport avec le chien sous forme de tableaux avec les informations du livres. Vous comprenez ? Comment faire cela en php ?


Merci d'avoir lu mon topic et d'avoir répondu (si vous avez répondu (: )


10 réponses

Messages postés
6791
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
20 janvier 2022
1 656
slt

en fait tu voudrais que l'on fasse le moteur à ta place vu que tu n'as pas assez de connaissance !

Je te redirige vers ce tuto qui explique comment faire ce que tu veux:
http://www.siteduzero.com/tutoriel-3-34441-realiser-un-moteur-de-recherche-pour-son-site.html

bon courrage
1
Messages postés
424
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
64
les outils de base, php et base de donnée lié au formulaire html puis un peu de css pour la mise en forme, plus avancé, ajouter de l'ajax afin de faire des proposition durant la frappe du champ de recherche et une fois selectionner, animer le changement de contenu du resultat. penser a la pagination d'une maniere (php) ou d'une autre (ajax)
0
Merci d'avoir répondu, je ne veut pas d'ajax ! Cela ne me serviras pas ! Mais j'aimerais de l'aide au niveau du code.
0
Messages postés
424
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
64
Alors, deja quelle sont t'est connaissances, connait tu le php? les base de données? Les requetes? De quoi dispose tu pour faire ton site?
0
Alors je ne connais pas trop le php, malgré qu'avec des codes style page de connexion,inscription je me débrouille. Je connais le mysql je sais faire une table etc.... Pour faire les truc genre insert into je connais je sais faire mais pas plus loin ! Mon site est un site de livre, il s'agit d'avoir un moteur de recherche qui va recherchez dans ma base de donnée selon 17 critères :

(titre,auteur,code barre,isbn,collection,date de parution, éditeurs....)

Si je tape dans mon moteur de recherche "Ulysse" c'est un titre si il y est dans ma base de donnée il va avoir un tableaux qui va s'afficher avec tous les livre qui sont en rapport avec Ulysse. Par exemple j'ai un seul livre dans ma base de donnée, il s'appelle Ulysse.

Pour le trouver, je peux taper le titre,l'auteur, la date de parution, le code barre, l'isbn, l'éditeurs, la collection, un petit bout de la description, il seras affiché. Vous comprenez ? Un peux comme le site catalogue.bnf.fr
0
Nan ! Le tuto je l'ai déjà vu et je comprend mais je n'arrive pas à afficher mes résultats !
0
Messages postés
424
Date d'inscription
samedi 1 décembre 2012
Statut
Membre
Dernière intervention
22 mai 2018
64
Bien, prenons par ordre.

T'est livres vont devoir etre enregistrer dans une base de donnée.
tu vas avoir donc plusieurs champs concernant le livre en question plus d'autres additionnel qui permettront d'avoir quelque élément supplémentaire, tel que le fait que le livre soit actif ou non.

Peut tu nous détailler les champs ainsi que leur composition de ta base de donnée pour commencer? Cela nous permettras de t'aiguiller mieux sur les types de champs et une meilleurs organisation des systèmes de recherche.
0
Messages postés
6791
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
20 janvier 2022
1 656
et si tu nous donner ton code pour voir ce que tu as fais ?
Parce qu'avec un:
WHERE livre LIKE '%$motatrouver%'
tu devrais déjà t'en sortir.
donc ou en es tu ?
0
Donc et bien j'ai copier et modifier quelques truc du code du SDZ.
Mes champs sont :
Titre,Auteurs,Date de parutions,Code barre, Editeurs,Collection,Collation,N° Collection,ISBN,Prix,image,description, document,nature,genre,type de nature, ils sont tous en text sauf isbn,code barre,prix qui sont en int et id en auto incrément.

Mon code :

<!DOCTYPE html>
<html lang="fr">
	<head> 
		<meta charset="utf-8"/>
		<meta name="keywords" content="LibryDoc, notices bibliographiques, base de donnée, livres, manga, ">
		<meta name="description" content="Notices bliographiques gratuites">
		<title>LibryDoc</title>
		<link rel="stylesheet" href="css/style.css">
	</head>

	<body>       
		<div id="page">
			<div class="center">
				<div id="header">
					<div id="logo">
						<img src="css/images/logo.png" width="350" height="120" alt="">
					</div>
				</div>
			</div>
<div class="center">
					<div id="content">
									<div id="searchHome">
									<?
if(isset($_POST['requete']) && $_POST['requete'] != NULL) // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
{
mysql_connect('localhost','root','');
mysql_select_db('bdd'); // on se connecte à MySQL. Je vous laisse remplacer les différentes informations pour adapter ce code à votre site.
$requete = htmlspecialchars($_POST['requete']); // on crée une variable $requete pour faciliter l'écriture de la requête SQL, mais aussi pour empêcher les éventuels malins qui utiliseraient du PHP ou du JS, avec la fonction htmlspecialchars().
$query = mysql_query("SELECT * FROM notices WHERE titre LIKE '%$requete%' ORDER BY id titre") or die (mysql_error()); // la requête, que vous devez maintenant comprendre ;)
$nb_resultats = mysql_num_rows($query); // on utilise la fonction mysql_num_rows pour compter les résultats pour vérifier par après
if($nb_resultats != 0) // si le nombre de résultats est supérieur à 0, on continue
{
// maintenant, on va afficher les résultats et la page qui les donne ainsi que leur nombre, avec un peu de code HTML pour faciliter la tâche.
?>
<h3>Résultats de votre recherche.</h3>
<p>Nous avons trouvé <? echo $nb_resultats; // on affiche le nombre de résultats 
if($nb_resultats > 1) { echo 'résultats'; } else { echo 'résultat'; } // on vérifie le nombre de résultats pour orthographier correctement. 
?>
dans notre base de données. Voici les fonctions que nous avons trouvées :<br/>
<br/>
<?
while($donnees = mysql_fetch_array($query)) // on fait un while pour afficher la liste des fonctions trouvées, ainsi que l'id qui permettra de faire le lien vers la page de la fonction
{
?>
<a href="fonction.php?id=<? echo $donnees['id']; ?>"><? echo $donnees['titre']; ?></a><br/>
<?
} // fin de la boucle
?><br/>
<br/>
<a href="rechercher.php">Faire une nouvelle recherche</a></p>
<?
} // Fini d'afficher les résultats ! Maintenant, nous allons afficher l'éventuelle erreur en cas d'échec de recherche et le formulaire.
else
{ // de nouveau, un peu de HTML
?>
<h3>Pas de résultats</h3>
<p>Nous n'avons trouvé aucun résultat pour votre requête "<? echo $_POST['requete']; ?>". <a href="rechercher.php">Réessayez</a> avec autre chose.</p>
<?
}// Fini d'afficher l'erreur ^^
mysql_close(); // on ferme mysql, on n'en a plus besoin
}
else
{ // et voilà le formulaire, en HTML de nouveau !
?>
<p>Vous allez faire une recherche dans notre base de données concernant les fonctions PHP. Tapez une requête pour réaliser une recherche.</p>
<form action="index.php" metod="Post">
					<div id="bookSearch">
						<!--[if IE]><input type="text" style="display: none;" disabled="disabled" size="1" /><!-->
						<input type="text" class="search" name="Mot" style="height:23px;font-size:16px;border-radius:5px;" size="65">
						<input class="quicksearchBtn" type="submit" value="Rechercher" />
					</div>
				</form>
</form>
<?
}
// et voilà, c'est fini !
?>
			</div>
</div>
					</div>
					<aside>
					<h3>Espace personnel</h3>
					<a href="/librydoc/connexion.php"><img src="/librydoc/css/images/co.png" alt="connexion"/></a>
					<img src="/librydoc/css/images/ou.png" alt="ou"/>
					<a href="/librydoc/inscription.php"><img src="/librydoc/css/images/in.png" alt="inscription"/></a>
					</aside>
				</div>
			
	</body>
</html>
0
Messages postés
6791
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
20 janvier 2022
1 656
tu as copié collé le code du SDZ avec une unique variable de recherche qui est $requete !

vu toutes les options de recherche que tu notes, et si aucune variable ne s'appel $requete, tu vas avoir du mal à afficher quelques chose !

donc, donne aussi ton form html
0
Quel form html ?
0
Messages postés
6791
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
20 janvier 2022
1 656
ba tes champs html, la ou tu notes les mots à chercher

Mes champs sont :
Titre,Auteurs,Date de parutions,Code barre, Editeurs,Collection,Collation,N° Collection,ISBN,Prix,image,description, document,nature,genre,type de nature, ils sont tous en text sauf isbn,code barre,prix qui sont en int et id en auto incrément.
0
Oui je vois ba y'as que 1 champs barre de recherche qui est dans le fichier php

<form action="index.php" metod="Post">
					<div id="bookSearch">
						<!--[if IE]><input type="text" style="display: none;" disabled="disabled" size="1" /><!-->
						<input type="text" class="search" name="Mot" style="height:23px;font-size:16px;border-radius:5px;" size="65">
						<input class="quicksearchBtn" type="submit" value="Rechercher" />
					</div>
				</form>
0
Messages postés
6791
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
20 janvier 2022
1 656
ah oui j'avais pas vu !

Mais c'est pas avec ça que tu va ressortir quelque chose !
ton champ formulaire s'appel Mot, et tu recherches sur la variables $requete !

et tout ça:
Titre,Auteurs,Date de parutions,Code barre, Editeurs,Collection,Collation,N° Collection,ISBN,Prix,image,description, document,nature,genre,type de nature, ils sont tous en text sauf isbn,code barre,prix qui sont en int et id en auto incrément.
c'est uniquement dans ta base alors ?

il faut que tu fasses plusieurs requête en fonction de checkbox de cochées par exemple, mais que tu n'as pas.
0
Dans ma base il y as plusieurs ligne avec titre...... Regardez sur catalogue.bnf.fr c'est un truc du genre que je souhaite.
0