Code php pour moteur de recherche

Fermé
JDM - 17 mars 2011 à 00:05
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 - 18 mars 2011 à 10:52
Bonjour,

Je travaille sous , windows 7, notepad ++

Mon problème: je réalise un site internet dans lequel je souhaite afficher un moteur de recherche qui trouvera ses infos à partir d'une base de donnée que j'ai conçu.En plus de cela j'aimerai que mon moteur de recherche me propose une liste (qui correspond à une colonne d'une de mes tables) de noms. A partir du mot entré ou choisi dans la liste, la recherche m'affichera toutes les infos concernant ce nom.
Je travaille sur mon site depuis pas mal de temps déjà et me lasse de ne pas trouver, je fais donc appel a vous; merci d'avance. Voici une partie de mon code retenu après moult tentatives...

Pour la connexion à ma base:

<html>
<?
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('wpi'); // on se connecte à MySQL.
$requete= "select * from wpi where Main_port_name like '%$f_prenom%'";
$resultat=mysql_query($requete);
while ($rows=mysql_fetch_array($resultat)) {
$nom=$rows[Region_index]; $prenom=$rows[Main_port_name] ; $adresse=$rows[Wpi_country_code];
echo "nom : $, prenom : $, adresse : $adresse";
?>
<html/>

Et le principal pour le moteur de recherche:


<html>
<head>
<title>Résultat de la recherche</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body text="#FFFFFF" bgcolor="#000000" link="#9999FF" vlink="#6699FF" alink="#FFFF00">

<font face="Verdana" size=2>

<form action="recherche.php3" method="post">
Saisissez un ou plusieurs mots :
<input type="text" name="mot" size="20">
<input type="submit" value="Rechercher">
</form>


</font>
</body>
</html>
A voir également:

3 réponses

Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
17 mars 2011 à 11:01
Bonjour,


*se gratte la tete et se pose pleins de questions*

ton champ de saisie s'appel "mot", on est d'accord.

tu test l'existence de $_POST['requete'], ca sort d'ou ca? c'est pas plutot $_POST['mot'] qu'il faut tester?

tu te connecte a ta BD, pas de soucis

et tu forme ta requete avec un "where Main_port_name like '%$f_prenom%'"

encore une fois d'ou sort ce $f_prenom?? c'est pas encore une fois $_POST['mot']

parce que la on le rentre dans ton champ et tu ne l'utilise absolument jamais donc ca va etre dur de trouver ^^

0
Merci pour ta réponse Gremy,

J'ai effectué la rectification. maintenant je crois que le vrai probleme vient de la connexion a ma base de donnée, je pense que quelquechose ne marche pas, même si je rentre un mauvais localhost je n'ai pas de message d'erreur.
La seule différence notable est pour le moment le fait que mon moteur de recherche enregistre les anciennes frappes.. Je remet mon code en copie, si quelqu'un serai m'éclairer. Je rappel que mon but est d'obtenir un menu deroulant dans ma barre de recherche, menu qui fait appel a une colonne de ma table. Merci d'avance
0
Mon fichier site.php:


<html>

<head>
<title>Harbours world tour</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="mise_en_page" href="mise_en_page.css" />
</head>

<body>

<?php
include"partie_active.php";
?>
<tr>
<DIV class = "Titre">



<th>Welcome, </th>

<th>Find your harbour:</th>

</div>
</tr>
0
<DIV class = "phare"><p class="try"><img src="03_phare10.gif" /></p> </div>

<DIV class = "recherche"> <p>Enter here a harbour name and click ok.</p>
<form action="rechercher.php" method="Post">
<input type="text" name="mot" size="10">
<input type=image src=boat-sailboat.gif>
</form></div>
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
18 mars 2011 à 10:52
Bonjour,

je te conseil d'utiliser la magnifique petite fonction "or die()" ^^


mysql_connect('localhost','root','') or die ('la connexion a écouée');
mysql_select_db('wpi') or die('le choix de la bd a echoué'); // on se connecte à MySQL.
$requete= "select * from wpi where Main_port_name like '%$f_prenom%'";
$resultat=mysql_query($requete) or die('la requette a échouée');

tu saura deja si ca foire et ou ca foire^^

si cela ne t'apporte pas plus d'infos, fais un echo de ta requete avant le mysql_query et lance la dans phpmyadmin si tu es sous wamp ou l'équivalent.

tu veras si ta requete a une erreur.

0