Moteur de recherche

Fermé
stephane - 24 juil. 2009 à 17:56
Laure94 Messages postés 21 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 - 30 juil. 2009 à 12:24
bjr à tous, je veux realiser un moteur de recherche. je m'esplik : j'ai une base de donnée ki contient le nom , prenoms et le contact de mes clients. je voudrais ke ke l'application me donne le numero de téléphone d'un client après ke j'ai entrer son nom dans l'espacxe de recherche; voila mes codes:

code recheche.php

<form method="post" action="trouve.php">
Votre recherche : <input type="text" name="nom" />
<br />
<br />
<input type="submit" name="recherche" value="Rechercher" />
</form>

et voici mon code ki traitera ma recherche:

<?php
$mysql_host = 'localhost'; // entrer votre hôte ici
$mysql_user = 'root';
$mysql_password ='';
$mysql_base = 'client';//nom de la base de données

// on se connecte au server mysql
$db = mysql_connect($mysql_host, $mysql_user, $mysql_password) or die("erreur de connexion");
// selection de la base
mysql_select_db($mysql_base,$db) or die ("erreur de connexion à la base");

// on teste si notre variable est déclarée

if (isset($_POST['nom']))

{

// lancement de la requête

$sql = 'SELECT contact FROM `infos`. WHERE nom like "%'.$_POST['nom'].'%"' ;


// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on récupère le résultat sous forme d'un tableau
$data = mysql_fetch_array($req);

// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();

// on affiche le résultat
echo 'Le numéro de téléphone est : '.$data[contact'];
}
else {
echo 'le champ recherche n\'est pas déclarée';
}
?>


j'ai beau essayer mais ça ne donne rien. je travail avec wamp.
merci à tous ceux ki m'enveront d'éventuèls solutions
A voir également:

3 réponses

Laure94 Messages postés 21 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 1
24 juil. 2009 à 18:09
echo 'Le numéro de téléphone est : '.$data[contact']; 


tu l'as écrit tel quel ? je crois que tu as mal placé les guillemets

echo 'Le numéro de téléphone est : '.$data["contact"]; essaie comme ça

sinon les mysql_free_result ($req);
mysql_close ();

met les vraiment tout à la fin de ta page.

si tu as phpmyadmin test la requete et regarde si ça te retourne des résultats.
si oui alors c'est le code ^^
0
slt laura, voici mon nouvo code aprè avoir suivi tes conseil.
et maintenat kan je tape un nom matryx ki est dans ma bd et ke je m'attend à voir son contact , voilà ce ki s'affiche :


Erreur SQL !
SELECT contact FROM `infos`. WHERE nom like "%matryx%"
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE nom like "%matryx%"' at line 1.

stp aide moi
0
Laure94 Messages postés 21 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 1
27 juil. 2009 à 09:43
SELECT contact FROM infos WHERE nom like '%matryx%' ;

essaie ça ^^
0
lorske j'éssai avec cela ça marche, sans faute, mais vous convevenez avec moi ke je ne vais pas faire des requètes avec tous les prenoms, vous voyez ce ke je veu dire. je précise ke je travail avec wamp com easy php; mais avec les deux cè pareil ça ne marche pas .
le procédé est le suivant : je rentre un nom dans la recherche , et en me connectant à la base de donnée j'ai les infos de la personne; vraiment gran merci à toi laura ki m'aide.
0
Laure94 Messages postés 21 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 1
30 juil. 2009 à 12:24
dans ce cas il faut faire une boucle du genre :

$req = "select nom from infos";
$result = mysql_query($req) or die (mysql_error());

while ($res=mysql_fetch_array($result)) {

$req2="SELECT contact FROM infos WHERE nom like '%'".$res['nom']."'%' ;";
$result2 = mysql_query($req2) or die (mysql_error());
$res2=mysql_fetch_array($result2);

echo $res2['contact']; // là ça va t'afficher le contact de chaque nom
}
0