begin process at 2012 02 13 18:14:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

recherche par formulaire en "couplant" plusieurs champ


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recherche par formulaire en "couplant" plusieurs champ

vendredi 1 mai 2009 à 17:39:05 | recherche par formulaire en "couplant" plusieurs champ

caliche

Bonjour à tous,
J'ai un gros soucis pour pouvoir coder, j'ai beau chercher partout pas moyen d'obtenir une réponse :(

J'explique mon cas..
J'ai un formulaire que le visteur dois remplir pour effectuer une recherche dans ma bdd...jusque là pas trop compliquer me direz-vous !

Là où ça coince c'est que les réponses retournées par ma bdd doivent tenir compte de tout les champ rempli...j'explique

Par exemple j'ai dans ma bdd les champs suivant:

prénom nom ville hobby date naissance mail

dans mon formulaire j'ai trois champs à remplir:

prénom ville hobby



Donc si l'utilisateur rempli sophie paris tennis

ma bdd dois lui répondre:

sophie dumoulin paris tennis 24/05/1978 dumoulin.s@....
sophie dufour paris tennis 12/02/1975 sophie.dufour@...
sophie dupré paris tennis 06/03/1974 dupré.sophie@...

et ainsi de suite...


Donc mon problème c'est de savoir comment obliger ma bdd à tenir compte de tout les champs rempli pour rechercher ceux qui entrent dans les conditions.

Pour lui dire d'afficher tout ceux qui entre dans 1 condition, pas de soucis, je fait mon codage sans problème avec ma boucle et op l'affaire est dans le sac mais lorsqu'il sagit de tenir compte de plusieurs conditions alors là je sèche...

Ca fait 3 jours que je cale là dessus :(



voici mon code de base qui ne reprend pas l'exemple donné (l'exemple est simpliste pour comprendre ma question)


<?php
if (isset($_POST['recherche_cp'])){
mysql_connect("localhost","root","mysql" );
mysql_select_db ("belgitopia" );

$cpo_q = $_POST['recherche_cp'];
$cpo_sql ="SELECT * FROM recherche WHERE cp LIKE '%$cpo_q%'";
$cpo_req=mysql_query($cpo_sql) or die(mysql_error());
mysql_close();

while($cpo=mysql_fetch_array($cpo_req)){
?>
<hr id="recherche_haut_hr" style="color: #f7b309;">
<center><img src="<?php echo $cpo['images']; ?>" width="500px"></img></center>

<table width="100%">
<tr><td valign="top" width="30%"><h2><?php echo $cpo['type_activite']; ?></h2><td width="5%"></td>
<td valign="top" width="30%"><h2><?php echo $cpo['nom']; ?></h2>
<td width="5%"></td><td width="30%"><?php echo $cpo['lien_site']; ?></td>
</tr>
<tr><td valign="top" width="30%" style="border: dotted 1px #f7b309;"><?php echo $cpo['descriptions']; ?></td><td width="5%"></td>
<td valign="top" width="30%"><?php echo $cpo['tel']; ?> <br/> <?php echo $cpo['fax']; ?><br/><?php echo $cpo['horaires']; ?></td>
<td width="5%"></td><td valign="top" width="30%"><?php echo $cpo['adresse']; ?><br/><?php echo $cpo['cp']; ?><br/><?php echo $cpo['commune']; ?><br/><?php echo $cpo['mail']; ?><br/><?php //echo $cpo['plan_acces']; ?></td>
</tr>
</table>
<?php
}
}
?>
vendredi 1 mai 2009 à 18:15:15 | Re : recherche par formulaire en "couplant" plusieurs champ

caliche

Ben voilà j'ai trouver finalement...donc je file l'info pour ceux qui cherchent aussi :-)

<?php
if (isset($_POST['nom'])){
if (isset($_POST['commune'])){
if (isset($_POST['cp'])){
if (isset($_POST['type'])){
mysql_connect("localhost","root","mysql"); 
mysql_select_db ("belgitopia"); 
 
$avance_nom = $_POST['nom'];
$avance_commune = $_POST['commune'];
$avance_cp = $_POST['cp'];
$avance_type = $_POST['type'];
$avance_sql ="SELECT * FROM recherche WHERE nom LIKE '%$avance_nom%' AND commune LIKE '%$avance_commune%' AND cp LIKE '%$avance_cp%' AND type_activite LIKE '%$avance_type%'"; 
 $avance_req=mysql_query($avance_sql) or die(mysql_error()); 
 mysql_close(); 
 while($avance=mysql_fetch_array($avance_req)){ 
 ?>
 <hr id="recherche_haut_hr" style="color: #f7b309;">
 <center><img src="<?php echo $avance['images']; ?>" width="500px"></img></center>
 
 <table width="100%">
 <tr><td valign="top" width="30%"><h2><?php echo $avance['type_activite']; ?></h2><td width="5%"></td><td valign="top" width="30%"><h2><?php echo $avance['nom']; ?></h2>
 <td width="5%"></td><td width="30%"><?php echo $avance['lien_site']; ?></td></tr>
 <tr><td valign="top" width="30%" style="border: dotted 1px #f7b309;"><?php echo $avance['descriptions']; ?></td><td width="5%"></td>
 <td valign="top" width="30%"><?php echo $avance['tel']; ?><br/><?php echo $avance['fax']; ?><br/><?php echo $avance['horaires']; ?></td>
 <td width="5%"></td><td valign="top" width="30%"><?php echo $avance['adresse']; ?><br/><?php echo $avance['cp']; ?><br/><?php echo $avance['commune']; ?><br/>
 <?php echo $avance['mail']; ?><br/>
 <?php //echo $avance['plan_acces'];?></td>
 </tr>
 </table>
 <?php
 }
}
}
}
}
 
 ?>
vendredi 1 mai 2009 à 21:09:53 | Re : recherche par formulaire en "couplant" plusieurs champ

xactise

Membre Club
je ne te conseille pas d'utiliser LIKE '%%' si tu veux un résultat juste. LIKE '%%' va rechercher toute les réponse comptenant ta recherche :
exemple avec le prénom jean , il va aussi te trouver jean-claude, utiliser plutot = tout simplement. champ = $var plutôt que champ LIKE '%$var%'

L0rD...
vendredi 1 mai 2009 à 22:48:26 | Re : recherche par formulaire en "couplant" plusieurs champ

caliche

Slt Xactise,

Effectivement c'est bien vu...je ne l'avait pas tester sous cet effet et n'avais donc pas remarquer ce problème.

Donc j'ai testé en remplaçant comme tu me le conseils....et là il me dit  "erreur de sintaxe"
-je l'ecrit sans ' ' il me met erreur de sintaxe
$avance_sql ="SELECT * FROM recherche WHERE nom=$avance_nom AND commune=$avance_commune AND cp=$avance_cp AND type_activite =$avance_type"; 

-j'ai essayé avec les ' ' et là il ne met pas d'erreur mais il ne trouve plus rien.
$avance_sql ="SELECT * FROM recherche WHERE nom='$avance_nom' AND commune='$avance_commune' AND cp='$avance_cp' AND type_activite='$avance_type'"; 

La seule solution que je trouve actuellement  (qui reste intermédiaire) c'est d'obliger à entrer un nombre minimum de lettre pour minimiser le problème.

Si tu vois ce qui pourrait poser problème, où ce qui ferais que j'aurais eventuellement mal compris ton instruction....n'hesites pas, et encore merci pour cet éclarage.
samedi 2 mai 2009 à 06:37:10 | Re : recherche par formulaire en "couplant" plusieurs champ

xactise

Membre Club

$avance_sql ="SELECT * FROM recherche WHERE nom='".$avance_nom."' AND commune='".$avance_commune."' AND cp='".$avance_cp."' AND type_activite='".$avance_type."'";

remplace ta requete par sa.

L0rD...
samedi 2 mai 2009 à 11:25:44 | Re : recherche par formulaire en "couplant" plusieurs champ

caliche

Tu vas me trouver chiante lol mais j'ai tester ce code et je n'ai pas d'erreur mais cela ne fonctionne pas, il ne trouve plus rien.
samedi 2 mai 2009 à 11:31:26 | Re : recherche par formulaire en "couplant" plusieurs champ

caliche

Mais finalement c'est pas grave, parce que si je change le code pour qu'il ne trouve que ce qui à été taper, il réduit les réponses...et généralement dans ce type de recherche   (en tout cas dans mon cas de site) les gens vont certainement entrer quelques lettres et attendrent les réponses pour choisir ou peuvent faire des fautes de frappe ou d'orthographe et du coups n'auront pas de reponse à leur recherche...

Donc je pense que je vais plutôt adapter le codage pour obliger à entrer un nombre minimum de lettre pour quand même eviter que si l'utilisateur tape seulement  "e" ils reçoivent en réponse pratiquement la totalité de ma bdd lol.

Mais en tout cas un grand merci pour ton aide et du suivit que tu m'as accordé :-)


Cette discussion est classée dans : mysql, recherche, bdd, sophie, cpo


Répondre à ce message

Sujets en rapport avec ce message

MySQL [ par intello2001 ] j'ai fait une base MySQL toute neuve, toute VIDE !!je voudrai avoir des exemple de création de table et tt sa...je c juste sa :$host="sql.free.fr";$ba multi recherche mysql ??? [ par stephane ] saluttout simplement je voudrai savoir comment effectuer une requete my sql dans toutes les tables (je pense que c'est faisable mais je ne sais pas co Php & MySql ??? [ par nova85 ] Je voudrai savoir si il est possible de realiser un site assez important juste avec une BDD mysql , si c'est capable de resister , et surtout savoir s postgresl --> mysql [ par NDK ] Bonjour, Je dois reprendre un site qui a été réalisé en php avec une bdd en Postgresql, et j'aimerais convertire le code pour qu il travaille avec une Erreur Mysql [ par FearBlue ] Slt a tous!!!!jai une erreur mysql :je v vous montrer mon code c en rapport avec LIKEif(isset($HTTP_POST_VARS['recherche'])){$db = mysql_connect('loca un lien qui indique à MySQL la requête à afficher [ par pyranhaz ] Bonjour,Cela semblait simple au départ, mais quand on est un néophyte, on sy perd rapidement :-sJ'ai un formulaire de recherche qui utilise MySQLquan comment faire un recherche dans une base mysql [ par boulanger ] je fait une gestion de documentation technique et je boque sur la conception de la page de recherche dans ma base apellé bdbouldoc il y a les champ comment faire un recherche dans une base mysql [ par boulanger ] merci adrien pour le coup de main mais ca ne m affiche rien en resultat de recherche pouvez vous voir ce qui cloche dans le codebase en mysql et code Mise à jour d'une table MySql, suite à une recherche PHP [ par tanktrasher ] 'lut,j'ai un bleme :j'ai une liste deroulante dans un formulaire PHP qui me permet d'executer une requete de recherche dans une table MySql.Je fais af liste deroulante bdd mysql [ par lagombe ] Voilà je tente désespérement de monter sur un formulaire deux listes déroulantes, la première apparaît toute seule (contenu d'une bdd, ça ça marche...


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales