Moteur de recherche

Résolu
cocob84270 Messages postés 17 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 5 juin 2014 - 22 mai 2014 à 10:01
cocob84270 Messages postés 17 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 5 juin 2014 - 22 mai 2014 à 13:47
Bonjour,

Je voudrais savoir comment faire un moteur de recherche
avec plus choix de recherche comme sa :



<form action="test.php" method="post">
Rechercher par <select name="rechercherpar">
<option>Num</option>
<option>Type</option>
<option>Soustype</option>
<option>Commune</option>
</select>
Mot clé<input type="text" name="mot_cle">
<input type="submit" value="Rechercher">

J'ai essayer de test sa :http://www.developpez.net/forums/d337394/php/php-sgbd/php-mysql/creer-moteur-recherche-php-mysql/

Mais il me dit une erreur

Merci Bien

7 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
22 mai 2014 à 10:15
Bonjour,

Plutot que de nous coller un lien vers une discussion ( d'un autre site qui plus est...) .
Peux tu :

1 - Nous coller ton code ( celui qui te pose problème)

2 - Nous indiquer en détail le souci rencontré.

3 - Vu que tu as un message d'erreur .... nous le DONNER !




0
cocob84270 Messages postés 17 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 5 juin 2014 1
22 mai 2014 à 10:27
oui,et j'ai comme erreur Parse error: syntax error, unexpected T_NS_SEPARATOR ligne de la requêtes .

Code HTML :
<form action="search.php" method="post">
Rechercher par <select name="rechercherpar">
<option>NUM</option>
<option>Type</option>
<option>SousType</option>
</select>
Mot clé<input type="text" name="mot_cle">
<input type="submit" value="Rechercher">

Code PHP :



<?php

//connection Mysql

function search()
{
$champ=$_POST['rechercherpar'];
$mot=$_POST['mot_cle'];
$resultat=mysql_query("SELECT * FROM Batimentsrepertories WHERE $champ=\"$mot"\");

$ligne=mysql_fetch_array($resultat);
$nb=mysql_num_rows($resultat);
$i=0;
while($i<$nb)
{
$num=$ligne['Num'];
$type=$ligne['Type'];
$soustype=$ligne['SousType'];
echo $num.' '.$type.' '.$soustype
$i=$i+1;
}
}
search();
?>

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
22 mai 2014 à 10:33
j'ai comme erreur Parse error: syntax error, unexpected T_NS_SEPARATOR ligne de la requêtes .

Ligne de la requête ... ce n'est PAS le message que tu as....
Il doit plutot te dire ... Ligne 11...

Et donc... si tu regardes à ta ligne 11:
$resultat=mysql_query("SELECT * FROM Batimentsrepertories WHERE $champ=\"$mot"\");

Tu verras que tes apostrophes sont mal placés...

PS: Prends l'habitude de séparer ta requête de l'instruction query.
Ca permet de mieux la visualiser et de pouvoir éventuellement l'afficher à l'écran pour les tests...

En gros ( avec la correction des apostrophes) cela donne :
// requête (présentée avec des retours à la ligne c'est encore mieux! )
$sql = "SELECT * 
          FROM Batimentsrepertories 
          WHERE $champ=\"$mot\"";
// Affichage de la requête si besoin:
echo "<br><b>Requête</b>:<br>".$sql;

// Lancement de la requête :
$resultat=mysql_query($sql);
0
cocob84270 Messages postés 17 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 5 juin 2014 1
22 mai 2014 à 10:45
Merci, Mais j'ai une nouvelle erreur ^^
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';'
Ligne 29


<?php

//Connexion Mysql

function search()
{
$champ=$_POST['rechercherpar'];
$mot=$_POST['mot_cle'];

$sql = "SELECT *
FROM Batimentsrepertories
WHERE $champ=\"$mot\"";
// Affichage de la requête si besoin:
echo "<br><b>Requête</b>:<br>".$sql;

// Lancement de la requête :
$resultat=mysql_query($sql);

$ligne=mysql_fetch_array($resultat);
$nb=mysql_num_rows($resultat);
$i=0;
while($i<$nb)
{
$num=$ligne['Num'];
$type=$ligne['Type'];
$soustype=$ligne['SousType'];
echo $num.' '.$type.' '.$soustype
$i=$i+1;
}
}
search();
?>

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
22 mai 2014 à 10:53
La ligne qui précède... tu as oublié un ";"

le message d'erreur te le dit...
expecting ',' or ';'


 echo $num.' '.$type.' '.$soustype
// Doit se finir avec un point virgule...
 echo $num.' '.$type.' '.$soustype;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cocob84270 Messages postés 17 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 5 juin 2014 1
22 mai 2014 à 11:16
Sa m'affiche bien se que je rentre le souci que j'ai c'est qu'il faut que je rentre obligatoirement le chiffre en entier pour que j'ai la requêtes qu'il sorte alors que je voudrais bien par exemple que je rentre le chiffre 5 est tout les résultats contenant le chiffre 5 sorte
je pense avec un like non ?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
22 mai 2014 à 11:23
je pense avec un like
Oui.

$sql = "SELECT * 
          FROM Batimentsrepertories 
          WHERE $champ like \"%$mot%\"";
0
cocob84270 Messages postés 17 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 5 juin 2014 1
Modifié par cocob84270 le 22/05/2014 à 11:53
Encore un souci ^^ Mais déjà merci pour l'aide

Ma table :http://www.heberger-image.fr/images/55339_Table.png.html

Quand je saisi par exemple 56 sa me sort le 56362 mais pas le 56743
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
22 mai 2014 à 12:45
Normalement... c'est une nouvelle question... donc tu devrais ouvrir une nouvelle discussion...

Mais bon...

 $sql = "SELECT * 
          FROM Batimentsrepertories 
          WHERE $champ=\"$mot\"";
// Affichage de la requête si besoin:
echo "<br><b>Requête</b>:<br>".$sql;

// Lancement de la requête :
$resultat=mysql_query($sql);   
$nb=mysql_num_rows($resultat);
echo "<br><b>Nombre de résultats : </b>".$nb."<br>";
while ($ligne= mysql_fetch_array($resultat)) {
   $num=$ligne['Num'];
   $type=$ligne['Type'];
   $soustype=$ligne['SousType'];
 echo "<br>".$num.' '.$type.' '.$soustype;

}

0
cocob84270 Messages postés 17 Date d'inscription mardi 20 mai 2014 Statut Membre Dernière intervention 5 juin 2014 1
22 mai 2014 à 13:47
C'est bon sa marche
Merci pour toutes les informations
0
Rejoignez-nous