Moteur de recherche [Résolu]

Messages postés
17
Date d'inscription
mardi 20 mai 2014
Statut
Membre
Dernière intervention
5 juin 2014
- - Dernière réponse : 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
Afficher la suite 

Votre réponse

7 réponses

Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
364
0
Merci
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 !




Commenter la réponse de jordane45
Messages postés
17
Date d'inscription
mardi 20 mai 2014
Statut
Membre
Dernière intervention
5 juin 2014
1
0
Merci
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();
?>

Commenter la réponse de cocob84270
Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
364
0
Merci
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);
Commenter la réponse de jordane45
Messages postés
17
Date d'inscription
mardi 20 mai 2014
Statut
Membre
Dernière intervention
5 juin 2014
1
0
Merci
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();
?>

jordane45
Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
364 -
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;
Commenter la réponse de cocob84270
Messages postés
17
Date d'inscription
mardi 20 mai 2014
Statut
Membre
Dernière intervention
5 juin 2014
1
0
Merci
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 ?
jordane45
Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
364 -
je pense avec un like
Oui.

$sql = "SELECT * 
          FROM Batimentsrepertories 
          WHERE $champ like \"%$mot%\"";
Commenter la réponse de cocob84270
Messages postés
17
Date d'inscription
mardi 20 mai 2014
Statut
Membre
Dernière intervention
5 juin 2014
1
0
Merci
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
Commenter la réponse de cocob84270
Messages postés
25568
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 mai 2019
364
0
Merci
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;

}

cocob84270
Messages postés
17
Date d'inscription
mardi 20 mai 2014
Statut
Membre
Dernière intervention
5 juin 2014
1 -
C'est bon sa marche
Merci pour toutes les informations
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.