Probleme avec recherche depuis un formulaire

travailmichel Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 13 décembre 2007 - 4 mars 2005 à 14:54
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 11 mars 2005 à 16:08
bonjour à tous

voilà j'ai des soucis à afficher les resultats de ma recherche à partir d'un formulaire avec des chekbox et des menus deroulants. j'arrive à recuperer les valeur mais j'arrive pas à expliquer à la base = si j'ai cocher ces cases affiche depuis la base ce qui il y a dans les cases cochés et mon choix dans le menu deroulant et seulement ce que j'ai coché et rien d'autre.

un peu comme un site immobilier lorsque vous faites une recherche d'un bien particulier.

voilà donc je suis bloqué avec ça et du fait je n'avance plus, si qq'un peu m'aider ça m'arrangerait!!

merci d'avance

15 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
4 mars 2005 à 15:25
salut!

je dois pas eter bien futé, mais je comprends RIEN à ton message.

Essaie de simplifier le probleme en nous donnant un petit exemple ;)

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 15:26
Hello,



les checkboxes, tu les recuperes dans un tableau. Donc le mieux est de
parcourir ton tableau, ou de faire un implode() dessus avec les
separations correctes pour ta query (" AND " ou ce que tu veux/peux).

La liste deroulante, si elle n'est pas multiple, tu n'as qu'un choix...tu le recuperes, donc tu peux l'appliquer a ta query.

Il faut des AND dans ta requete, en gros, contenant les choix effectues.
0
travailmichel Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 13 décembre 2007
4 mars 2005 à 15:39
ok merci de vos reponses si rapides

juste qqq infos sur mon dossier

en fait j'ai une chekbox name= motocycle value=moto
une autre name=motocycle2 value=cyclo

un menu deroulant name=sorte avec value =bmw; harley; honda.

un autre menu deroulant name =prix value=0à1000e ; 1001à 2000e etc...

et un bouton valider

nom de mon table sql =biens

champ = id; becanes; sorte ; prix.

voilà les infos concernant ma base et mon form

pour implode je vois pas trop comment ça se gere?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 15:41
Pourquoi as-tu deux checkboxes ?

tu devrais avoir, si on peut choisir les deux options :

<select name="motocycle[]">

<option value="moto">moto</option>

<option value="cyclo">cyclo</option>

</select>
0

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

Posez votre question
travailmichel Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 13 décembre 2007
4 mars 2005 à 15:43
en fait l'internaute à la possibilité de choisir les deux en meme temps
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 15:47
Bref avec ton code, ca va donner un truc du genre



$query = "SELECT * FROM biens WHERE sorte='".$_POST['sorte']."' AND
(becanes='".$_POST['motocycle']."' OR
becanes='".$_POST['motocycle2']."') AND...etc ";
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 15:48
Ben oui justement, une checkbox unique aurait suffit, tu aurais eu tes
resultat dans un tableau motocycle[] au lieu de l'avoir dans deux
variables differentes.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
4 mars 2005 à 15:52
Salut,



pour savoir si ta checkbox a été cochée :



prenons un exemple d'une checkbox nommée "check"







dans la page php, tu fais ceci :



<?php

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

{

//checkbox cochée

}

?>


a ++


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
travailmichel Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 13 décembre 2007
4 mars 2005 à 15:58
$query = "SELECT * FROM biens WHERE sorte='".$_POST['sorte']."' AND (becanes='".$_POST['motocycle']."' OR becanes='".$_POST['motocycle2']."') AND...etc ";

ok ça j'ai deja ; le prob c'est que du coup ça m'affiche toutes les reponses...

actuellement j'ai ça s comme code:

$rbis="select becanes, sorte, prix from biens GROUP BY id ";
$rad=mysql_query($rbis);
$nbbis=mysql_num_rows($rad);



while ( $data = mysql_fetch_array($rad) ){
//$date=date("l d F Y");

$r="select * from biens where becanes='".$data[becanes]."' AND sorte='".$data[sorte]."' AND prix='".$data['prix']."'";
if ($motocycle&& $motocycle2)
{
$r .= " AND becanes='cyclo' OR becanes='moto'";



}
else if ($motocycle)
{
$r .= " AND becanes= 'cyclo'";
}
else if ($motocycle2)
{
$r .= " AND becanes= 'moto'";

}
$res=mysql_query($r);
$nb=mysql_num_rows($res);
echo $r;
echo $nb;

while( $data2 = mysql_fetch_array($res) ) {
//$vu=$data2['vu_bd'];


$id=$data2['id'];
etc..........
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
4 mars 2005 à 16:28
Je pige pas...

tu fais une requete complete sur ta table ($data)

Puis tu refais une recherche sur cette meme table en demandant si le
resultat de ta requete, parcourue en tableau, est a chaque fois egale a
ce qu'il trouve au meme endroit dans ta table...evidemment qu'il va
tout t'afficher ;-)

Tu dois partager.

Tu as ton formulaire.

Tu fais le traitement (tests etc) comme te l'indique Antho.

Puis tu construits ta requete en fonction de ca.



bref : if (isset($_POST...) etc.. {

la tu construits ta requete , mais en fonction des resultats (avec tes conditions)

C'est pour ca que creer d'abord un tableau avec tes POST est pas mal, ca t'evite de faire 1 requete avec plein de if().

$requete = "SELECT * FROM biens
WHERE sorte='".$_POST['sorte']."' AND
(becanes='".$_POST['motocycle']."' OR
becanes='".$_POST['motocycle2']."') AND...etc ";


}



Puis tu affiches.
0
travailmichel Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 13 décembre 2007
4 mars 2005 à 16:33
oui je vois a peu pres ce que tu veux dire , je vais essayer ça
0
travailmichel Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 13 décembre 2007
4 mars 2005 à 18:07
dis moi malamal comment je fais par contre pour mes menus deroulants?
car j'ai le name c'est = sorte et les values= bmw; harley, etc..
je fais des if (isset($_POST...) aussi ou bien?.. comment je fais pour recupere les valeurs aussi?
merci
0
travailmichel Messages postés 37 Date d'inscription mercredi 22 septembre 2004 Statut Membre Dernière intervention 13 décembre 2007
11 mars 2005 à 13:11
bonjour à tous

voila je voudrais recuperer une valeur disabled depuis un form .

en fait tant que l' input est normal je recupere sans probleme mais des que je mets disabled ça marche pas........

je pense ne pas etre le seul a avoir eu ce prob mais je ne trouve d'explication nulle part.

merci d'avance
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 mars 2005 à 16:01
Essaie avec des 'readonly="readonly"' au lieu de disabled="disabled"



a ++

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 mars 2005 à 16:08
Essaie avec des 'readonly="readonly"' au lieu de disabled="disabled"



a ++

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
Rejoignez-nous