|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
Bonjour ,
voila je rencontre un probleme pour la construction de ma requette j'ai un formulaire qui contient beaucoup de checkbox et toutes mes variables on pour valeurs 1 ou 0 : une fois le formulaire posté a la page qui va traité les infos et envoyer la requette , ni a t-il pas un moyen de mettre toutes ces variables dans un tableau , pour pouvoir apres avec la requette dire affiche moi toutes les lignes de la table xxx qui contiennent tous noms de champs (du tableau traiter) = 1 un petit shéma pour etre bien compris:moi je veux que ma requette ne traite que les valeurs $a et $d et je veux rapatrié toutes les lignes qui ont pour valeur $a et $d =1 etc.....; en fait je veux pas traiter les 0 Code :
|
||
|
|
00
|
|
|
#2 | ||
|
Inactif
![]() Inscription : septembre 2004 Messages : 11 753 ![]() |
Je ne sais pas si c'est ce que tu veux mais tu pourrais faire un traitement similaire :
Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
Ok kerod , Bon Bon si je comprend bien sa veux dire
Code :
apres comment je fait ma requette comme sa select xxx where $tab=1 ????????? |
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Il faut donner le nom de la table aussi...
Code :
SELECT champ FROM table WHERE nom_champ1= valeur1 AND nom_champ2=valeur2... Et cf signature pour l'orthographe merci.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
oui c'est sa
j'ai un formulaire de recherche d'annonce automobile et certains paramettres de recherches sont sous forme de checkbox cherche une peugeot avec check1(clim ) check2(lamp xenon ) etc.... donc c'est deux chek sont coché alors je veux que tout les annonces qui sont des peugeots qui on la clim et lampes xenon sortent ,meme si certaine peugeot on d'autre options qui non pas ete demander par le formulaire , l'important c'est que je puisse affiché les annonces qui on au moins les valeurs reclamer ( clim et lampe ) c'est pour sa que je cherche a faire une requette qui ne prend en compte uniquement les elements demander |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Ca dépend comment tu stockes les options dans ta table, montre nous sa structure et ça sera bon.
(bis) Et lis ma signature pour l'orthographe car tu ne l'as pas fait ![]() merci
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
Désolé pour l'horographe , je vais faire attention ,
voila la structure des tables , mais je peu encore la modifié si necessaire !! la quasi majorité des champs sont des 1 ou 0 Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Alors c'est parti.
En supposant que tes checkbox aient exactement le même nom que tes options. Code :
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
Bonjour,
A ta place (je n'y suis pas), je commencerais par revoir la structure de la base de données. Mettre une colonne par accessoire dans une même table = pas bon du tout, car si demain tu dois ajouter un nouvel accessoire, il te faudras modifier la bdd ainsi que le programme. Donc : table 'annonce' id etc... table 'accessoire' id nom table 'annonce_accessoire' id_annonce id_accessoire avec pour une annonce autant de ligne que d'accessoires. De plus avec ça, toutes tes checkbox peuvent porter le même nom, avec comme value la clé de l'accessoire. Pour les catégories et sous-catégories, une seule table suffit : table 'categorie' id nom id_pere Ex : categorie voiture, sous-categorie poussette, sous-catégorie chariot 1 voiture 0 2 poussette 1 3 chariot 1 |
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
Merci JWhite j'ai pas eu encore le temps de tester ta proposition de requete , j'y reviendrais si tu le permet ,
Jeca , j'ai pas tres bien compris ta solution qui apparement apporte un avantage certain celui de na pas toucher au code ni a la bdd si j'ajoute une option en sus !!! le formulaire correspond au contenu de la table donc quelque que soit la structure de mes tables il faut bien les modifiés si je modifie le formulaire !!! Non !!! désolé mais je debute. |
|
|
00
|
|
|
#11 | |
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 036 ![]() |
Citation:
Rien ne t'empêche de générer en php la partie du formulaire concernant les checkbox, ce qui fait que l'ajout d'un accessoire sera immédiatement répercuté sur le formulaire. PS - en gras les fôtes d'ortaugraffe |
|
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
Désolé pour les fautes !!!
bon je comprend toujours rien , 1/ formulaire insertion d'annonce permet d'inseré marques modeles et options ,la table annonce qui va recevoir les infos , marque , modele et les options sont defini par un 0 ou 1 selon que la checkbox et cocher ou pas ,0 pour cette auto na pas cette option 1 pour l'inverse . 2/ formulaire de recherche quasi identique au formulaire pour passer les annonces et la ma requete aura pour but de presenter toutes les auto du modele 407 de la marque peugeot dont les options demander on pour valeurs 1 . dans mon exemple de fonctionnement je suis bien obligé d'avoir la liste des options (checkbox ) dans ma table annonce de facon a sortir le resultat le plus precis possible demander par le formulaire de recherche ? excuse moi jeca je ne vois pas comment faire autrement ? peut-tu m'expliquer pas a pas comment se presenter ton fonctionnement et en quoi il est plus judicieux !! Merci |
|
|
00
|
|
|
#13 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Dans ta table de voitures :
1 Renault Clio 2004 => La voiture a pour id #1 Dans ta table options : 1 Clim manu => L'option clim manu a pour id #1 2 FC => L'option FC a pour id #2 3 VE => L'option VE a pour id #3 Et dans ta table qui fait le lien 1 1 => La voiture #1 a l'option #1 1 2 => La voiture #1 a l'option #2 1 3 => La voiture #1 a l'option #3 Et après il faut jouer avec des jointures pour faire les liens. Exemple : Code :
SELECT * FROM voiture, option, table_lien WHERE voiture.id = table_lien.id_voiture AND table_lien.id_option = option.id
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
Dans ta table de voitures :
1 Renault Clio 2004 => La voiture a pour id #1 l'id1 qui correspond a renault clio 2004 c'est l'id crée par auto incrément lors de l'insertion dans la table voiture qui a 4 champs id marque modele année ? Dans ta table options : 1 Clim manu => L'option clim manu a pour id #1 2 FC => L'option FC a pour id #2 3 VE => L'option VE a pour id #3 c'est valeurs qui ont pour id 1,2,3 sont des id crées par auto increment lors de l'insertion de l'annonce ou c'est moi qui les entrées a la mano ? Et dans ta table qui fait le lien 1 1 => La voiture #1 a l'option #1 1 2 => La voiture #1 a l'option #2 1 3 => La voiture #1 a l'option #3 en fait j'ai du mal a comprendre parceque je visualise pas tous le fonctionnement en locurence le fonctionnement de mes requetes . explique moi le en francais dans la table voiture tu as 4 champs id marque modele année dans la table options tu as xx champs qui sont tutu pupu etc..... et les lignes vont se crée par rapport au option que l'annonceur aura cochez etc.. quand ton client demandera renault clio 2004 avec clim et 4 roues motrice sa fera selectionne les id dans la table voiture qui sont egale a renault clio 2004 , puis .............................. |
|
|
00
|
|
|
#15 | ||||
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Citation:
Citation:
Citation:
Citation:
Exemple de requêtes : toutes les Renault qui ont la clim. Code :
SELECT * FROM voiture, option, table_lien WHERE voiture.id = table_lien.id_voiture AND table_lien.id_option = option.id AND voiture.marque='Renault' AND option.nom='Clim' J'ai l'impression que tu n'es pas à l'aise pour manipuler les BDD, mais si tu arrives à comprendre ce que je t'expliques tu seras vraiment gagnant.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
||||
|
|
00
|
|
|
#16 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
Bon merci pour ta patience maintenant j'ai besoin de faire le tour du fonctionnement pour bien le comprendre ,
formulaire d'insertion ( les données ) : mercedes value="10" modele value ="15" année value="2004" clim value="200" ordi de bord="280" les choses s'insere comme sa dans la table voiture : Id=1 id_marque=10 id_modele=15 id_année=2004 les choses s'insere comme sa dans la table options : Id id_option 1 200 2 280 la 3° table qu'on va appeler la table annonce : je ne vois pas comment les choses s'ecrivent dedans , comment elle doit etre structuré , comment elle fonctionne id d'increment , id de table_voiture ,id_option ; !!!!???? |
|
|
00
|
|
|
#17 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Oui c'est ça, mettons tu as une bagnole avec comme id 3, elle a comme options la clim (disons id 5), les VE (id 7) et les JA (14).
Dans ta table lien, tu auras trois lignes pour cette voiture : 3 5 3 7 et 3 14 C'est inutile d'ajouter un champ auto-increment à mon avis. Et après avec le genre de requête que je t'ai montré tu récupères tout ce que tu veux. Et là vive le gain de place
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#18 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
alors ma requete d'insertion d'annonce ressemble a
marque modele année insert into table_voiture id='' marque='$marque' modele='$modele' année='$annee' insert into table_option ( je doit insersé uniquement les options declarer par la coche de la checkbox comment ma requete peut faire pour inseré uniquement celle qui on ete cocher ? |
|
|
00
|
|
|
#19 | |
|
Membre chevronné
![]() Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 836 ![]() |
Citation:
__________________
Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ... |
|
|
|
00
|
|
|
#20 |
|
Membre régulier
![]() Inscription : juillet 2005 Messages : 484 ![]() |
avec mon ordinateur comme sa , sa marche pas non plus , comme chez toi ,
la question ne porte pas sur la requete mais un principe de fonctionnement general c'est pour dire marque modele année sont inseré dans la table voiture ,et comment on insere les options puisqu'il ne doivent figuré dans la table option uniquement celle .qui on ete cochez , comment ma requete est construite pour inseré celle concerné ?? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com