Page 1 sur 2

Recherche sur plusieurs champs

Posté : 09 déc. 2005, 13:46
par volubilis
Bonjour,

J'ai créé un formulaire de saisie de cette facon peut etre maladroitement mais je debute depuis cette semaine.

Code : Tout sélectionner

<form action="search.php" method="post"> <input type="text" name="nom" size="25" maxlength="40" value=" Recherchez sur le site"> <input type="submit" value="Go" style="background-color: #FF3810;"> </form>
puis dans mon fichier search.php je retourne

Code : Tout sélectionner

$reponse = mysql_query("SELECT * FROM artistes WHERE nom like '%".$_POST['nom']."%' order by nom");
tout marche sauf que je voudrais pouvoir en faite rechercher dans tous les champs de ma base le resultat du post et pas simplement que dans celui de nom

Merci [/code]

Posté : 09 déc. 2005, 14:22
par jobherzt
si par exemple tu as un champ description, il suffit d'ajouter "OR description LIKE %$_POST['nom']%".

Posté : 09 déc. 2005, 14:41
par betman
J'essaye également de faire un moteur de recherche sur mon site.

Pourrais-tu stp poster ta page qui affiche les résultats de ta recherche, car j'ai des soucis à ce niveau là

Posté : 09 déc. 2005, 14:43
par volubilis
j'essaye et je suis à toi betman !

Posté : 09 déc. 2005, 14:48
par volubilis
ca marche pas, voila ce que j'ai ca me ressort le premier enregistrement de ma base systematiquement mais pas le contenu du champ nom alors que ca marche pour le lieu mais en sortant egalement le premier enregistrement de ma base !!

Code : Tout sélectionner

WHERE nom or lieu like '%".$_POST['nom']."%' order by nom");
[/code]

Posté : 09 déc. 2005, 14:49
par volubilis
sinon pour Betman

Code : Tout sélectionner

$reponse = mysql_query("SELECT * FROM artistes WHERE nom or lieu like '%".$_POST['nom']."%' order by nom"); while ($donnees = mysql_fetch_array($reponse) ) { // on affiche les informations de l'enregistrement en cours echo "<a href=".$donnees['chemin'].">".$donnees['nom']."</a>"; echo '<b>'.' '.$donnees['type'].' '.$donnees['lieu'].' '.$donnees['annee'].'</b>'; echo "<br />"; echo "<br />"; echo "<br />"; }

Posté : 09 déc. 2005, 15:02
par betman
merci je vais regarder ça :)

Posté : 09 déc. 2005, 15:32
par betman
je viens de tester ton code, il me retourne bien le résultat mais il m'affiche une erreur :

Notice: Undefined variable: query in c:\program files\easyphp1-7\www\site intranet\admin\contact\search.php on line 15
Erreur SQL !
Query est vide
<?

include('connection.inc.php');

$reponse = mysql_query("SELECT * FROM contact WHERE nom_col like '%".$_POST['nom_col']."%' order by nom_col");

while ($donnees = mysql_fetch_array($reponse) )
{
 // on affiche les informations de l'enregistrement en cours
  echo "<a href=".$donnees['nom_col'].">".$donnees['nom_col']."</a>";

}
$result = mysql_query($query) or die ('Erreur SQL !<br>'.mysql_error());

?>
je ne vois pourquoi query serait puisqu'il me retourne le résultat...

Posté : 09 déc. 2005, 15:57
par Invité
t'as verifier le contenu de ton fichier connexion

Posté : 09 déc. 2005, 15:58
par volubilis
surtout qu'il y a un point entre ton inc et php je sais pas comment c'est interprete !!

Posté : 09 déc. 2005, 15:58
par volubilis
sinon pour moi c regle
merci !!

Posté : 09 déc. 2005, 16:00
par pjl
surtout qu'il y a un point entre ton inc et php je sais pas comment c'est interprete !!
ca n'a rien à voir avec le problème.
Ce point n'a pas à être interprété, c'est un nom de fichier.

Posté : 09 déc. 2005, 16:02
par volubilis
t'as sans doute raison !!
je debute depuis cette semaine !

Posté : 09 déc. 2005, 16:04
par betman
oui j'ai jamais eu de problème avec ce nom fichier j'utilise toujours ça.

Si je retire la ligne qui provoque l'erreur ça fonctionne mais bon ca pas top propre.

Posté : 09 déc. 2005, 16:05
par pjl
en l'occurence le message d'erreur est très clair.
Il dit simplement qu'à cette ligne :
$result = mysql_query($query) or die ('Erreur SQL !<br>'.mysql_error()); 
La variable $query qui est appelé n'a pas été définie.