Lister éléments d'une BDD
Fermé
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
-
12 avril 2011 à 22:46
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 - 15 avril 2011 à 09:09
a70m Messages postés 2763 Date d'inscription jeudi 21 mai 2009 Statut Contributeur Dernière intervention 2 février 2014 - 15 avril 2011 à 09:09
A voir également:
- Lister éléments d'une BDD
- Créer une liste déroulante excel - Guide
- Photoshop elements gratuit - Télécharger - Retouche d'image
- Copier coller plusieurs éléments - Guide
- Pdf elements - Télécharger - PDF
- Wd elements vs my passport - Forum Disque dur / SSD
23 réponses
black300
Messages postés
24
Date d'inscription
lundi 27 décembre 2010
Statut
Membre
Dernière intervention
14 avril 2011
12 avril 2011 à 23:25
12 avril 2011 à 23:25
désolé mais votre probleme n'est pas claire, est ce que vout voulez faire deux menus déroulants (combobox) l'un contenant la couleur et l'autre l'année?
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
Modifié par a70m le 13/04/2011 à 17:52
Modifié par a70m le 13/04/2011 à 17:52
Oui oui
Supposons que la 2ème colonne de mon tableau n'existe pas. Donc on ne considère que la 1ere des couleurs
Donc dans ma table j'ai plusieurs fois du VERT, plusieurs fois du BLEU, du JAUNE et du ROUGE
Je n'arrive pas à faire la requête qui me permet de lister les couleurs qui existe dans ma table ...
J'espère que j'ai plus éclaircir mon problème.
Merci de t'y intéresser
Supposons que la 2ème colonne de mon tableau n'existe pas. Donc on ne considère que la 1ere des couleurs
Donc dans ma table j'ai plusieurs fois du VERT, plusieurs fois du BLEU, du JAUNE et du ROUGE
Je n'arrive pas à faire la requête qui me permet de lister les couleurs qui existe dans ma table ...
J'espère que j'ai plus éclaircir mon problème.
Merci de t'y intéresser
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 17:07
14 avril 2011 à 17:07
up?
Bonjour
très bêtement ...
SELECT couleur FROM matable GROUP BY couleur ORDER BY couleur
et la même chose pour les années, bien sûr
très bêtement ...
SELECT couleur FROM matable GROUP BY couleur ORDER BY couleur
et la même chose pour les années, bien sûr
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dsl une autre fois, si j'ai bien compris on suppose que t'as une table :
col1-col2-col3
tu et tu veux afficher ta table selon la colonne 2 ( par exple celle des couleurs) c ca??
col1-col2-col3
tu et tu veux afficher ta table selon la colonne 2 ( par exple celle des couleurs) c ca??
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 17:46
14 avril 2011 à 17:46
Non
Ca doit être moi qui m'exprime mal.
J'ai dans ma table un champ 'couleur' où chaque couleur apparait plusieurs fois. Dans le sens où j'ai plusieurs entrées qui sont rouges, plusieurs qui sont bleus, etc. ...
Et moi, j'aimerai en fait lister les différentes couleurs qui sont présentes dans ma table, sans afficher le reste, ni combien de rouges ou de bleues sont entrées dans ma table.
Merci à toi
Ca doit être moi qui m'exprime mal.
J'ai dans ma table un champ 'couleur' où chaque couleur apparait plusieurs fois. Dans le sens où j'ai plusieurs entrées qui sont rouges, plusieurs qui sont bleus, etc. ...
Et moi, j'aimerai en fait lister les différentes couleurs qui sont présentes dans ma table, sans afficher le reste, ni combien de rouges ou de bleues sont entrées dans ma table.
Merci à toi
je pense c'est comme l'a dit "le pere" si tu vx seulement afficher la colonne des couleurs dans un ordre alors tu fé la requete qui vient de tle donner : select couleur from table order by couleur group by couleur
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 17:54
14 avril 2011 à 17:54
Je n'avais pas vu la réponse de le père.
C'est exactement ça ! Je ne connaissais pas la "fonction" GROUP BY
Merci à toi le père et aussi à black3000 pour tous les cheveux que tu t'es arraché en essayant de comprendre mon problème :o) !
Cordialement
a70m
C'est exactement ça ! Je ne connaissais pas la "fonction" GROUP BY
Merci à toi le père et aussi à black3000 pour tous les cheveux que tu t'es arraché en essayant de comprendre mon problème :o) !
Cordialement
a70m
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 17:57
14 avril 2011 à 17:57
C'est fait ! :)
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 20:53
14 avril 2011 à 20:53
Je reviens encore vers vous pour une question simple :
J'ai donc fait mon mini-moteur de recherche en utilisant la requête de le père pour année et couleur, et j'aimerai maintenant afficher les entrées de ma base qui satisferont mes conditions ...
Exemple : Si je veux toutes entrées de 2008 de couleur rouge.
Seulement, je ne veux pas être obligé de remplir les 2 champs. SI je veux toutes les entrés de 2007 par exemples.
J'ai donc fait ma requête de la manière suivante :
Mais si un champ n'est pas rempli, SQL ne comprend pas un LIKE %% avec rien entre les %
Je n'arrive pas à trouver la requête qui me permet de séléctionner les entrées d'un ou plus champs, sans avoir à forcément remplir les autres.
J'espère être assez clair.
Cordialement
J'ai donc fait mon mini-moteur de recherche en utilisant la requête de le père pour année et couleur, et j'aimerai maintenant afficher les entrées de ma base qui satisferont mes conditions ...
Exemple : Si je veux toutes entrées de 2008 de couleur rouge.
Seulement, je ne veux pas être obligé de remplir les 2 champs. SI je veux toutes les entrés de 2007 par exemples.
J'ai donc fait ma requête de la manière suivante :
$reponse = mysql_query("SELECT * FROM vins WHERE anneeLIKE %$annee% OR couleur LIKE %$couleur% ORDER BY id") or die(mysql_error());
Mais si un champ n'est pas rempli, SQL ne comprend pas un LIKE %% avec rien entre les %
Je n'arrive pas à trouver la requête qui me permet de séléctionner les entrées d'un ou plus champs, sans avoir à forcément remplir les autres.
J'espère être assez clair.
Cordialement
black300
Messages postés
24
Date d'inscription
lundi 27 décembre 2010
Statut
Membre
Dernière intervention
14 avril 2011
14 avril 2011 à 21:17
14 avril 2011 à 21:17
si j'ai bien compris, vous voulez afficher par exemple toutes les colonnes qui ont l'année 2008 et la couleur rouge, donc votre requete sera :
select*from vins where couleur = 'rouge' and annee ='2008'
select*from vins where couleur = 'rouge' and annee ='2008'
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 21:19
14 avril 2011 à 21:19
C'est ça, seulement, étant donné que le résultat (rouge et 2009) proviennent d'un formulaire, je voudrais faire en sorte que TOUS les champs NE soient PAS obligatoire.
C'est à dire que si je renseigne juste la couleur Rouge, j'aimerai qu'il me liste toutes les entrées de couleurs rouges. Idem pour l'année. Mais que si je remplis les 2, ça marche aussi.
Je crois que j'ai des problèmes pour m'exprimer :(
C'est à dire que si je renseigne juste la couleur Rouge, j'aimerai qu'il me liste toutes les entrées de couleurs rouges. Idem pour l'année. Mais que si je remplis les 2, ça marche aussi.
Je crois que j'ai des problèmes pour m'exprimer :(
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 21:32
14 avril 2011 à 21:32
Je vais essayer de détailler au mieux :)
Je souhaite faire un moteur de recherche pour 'filtrer' mes données.
J'ai donc mon formulaire de recherche qui est comme ceci :
Une fois que je clique sur Rechercher, je veux afficher les entrées de ma table correspondant à mes critères de recherches.
Seulement je ne veux pas obliger à renseigner tous les champs pour rechercher une ou plusieurs entrées. Ce qui fait qu'à l'envoie de la recherche, des champs seront peut être vides. C'est donc la requête qui me pose problème.
J'espère que ça ira cette fois. Merci de te creuser la tête pour moi encore une fois.
Je souhaite faire un moteur de recherche pour 'filtrer' mes données.
J'ai donc mon formulaire de recherche qui est comme ceci :
Couleur : [Select avec la liste des couleurs présentes dans la table] Année: [Select avec la liste des années présentes dans la table] [Rechercher]
Une fois que je clique sur Rechercher, je veux afficher les entrées de ma table correspondant à mes critères de recherches.
Seulement je ne veux pas obliger à renseigner tous les champs pour rechercher une ou plusieurs entrées. Ce qui fait qu'à l'envoie de la recherche, des champs seront peut être vides. C'est donc la requête qui me pose problème.
J'espère que ça ira cette fois. Merci de te creuser la tête pour moi encore une fois.
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 22:01
14 avril 2011 à 22:01
Merci, seulement j'aimerai le faire en PHP :/
Bonsoir
D'abord, je fabrique deux conditions, vides si le champ correspondant est vide, ou avec LIKE et %% s'il y a quelque chose
Ensuite, s'il y a deux conditions, je mets un AND (tu avais mis OR, ça me semble bizarre, à toi de voir) entre les deux ; sinon, je les concatène simplement, comme il y en a zéro ou une il ne faut pas de AND
Ensuite, s'il y avait au moins une condition, je mets le WHERE devant
Finalement, je rajoute le ORDER BY après
D'abord, je fabrique deux conditions, vides si le champ correspondant est vide, ou avec LIKE et %% s'il y a quelque chose
Ensuite, s'il y a deux conditions, je mets un AND (tu avais mis OR, ça me semble bizarre, à toi de voir) entre les deux ; sinon, je les concatène simplement, comme il y en a zéro ou une il ne faut pas de AND
Ensuite, s'il y avait au moins une condition, je mets le WHERE devant
Finalement, je rajoute le ORDER BY après
$condition1= (empty($annee)?"":"annee LIKE '%$annee%'"; $condition2= (empty($couleur)?"":"couleur LIKE '%$couleur%'"; $condition = (!empty($condition1) && (!empty($condition2)) ? ($condition1.' AND '.$condition2) : ($condition1.$condition2); if (!empty($condition)) $condition= ' WHERE '.$condition $requete = "SELECT * FROM vins'.$condition. ' ORDER BY id'; $reponse = mysql_query($requete) or die(mysql_error());
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 23:24
14 avril 2011 à 23:24
Seulement dans mon exemple je l'ai fait avec le champs couleur et années, mais dans ma table, j'ai 7 autres champs qui entrent en jeu, je devrais donc faire $condition2, $condition3 .... $condition7 ?
si tu mets ta liste de variables et de noms de champs dans un tableau, c'est assez facile, par exemple avec 4 :
(les noms des champs et des variables pourraient être différents, mais il faut qu'il y en ait le même nombre !)
(les noms des champs et des variables pourraient être différents, mais il faut qu'il y en ait le même nombre !)
$meschamps=array('couleur','annee','poids','taille'); $mesvariables=array($couleur,$annee,$poids,$taille); $condition=''; for ($k=0; $k< count($meschamps);$k++) { if (!empty($condition)) $condition .= ' AND '; $condition .= $meschamps[$k]." LIKE '%".$mesvariables[$k]."%'"; } if (!empty($condition)) $condition= ' WHERE '.$condition; ...
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
14 avril 2011 à 23:51
14 avril 2011 à 23:51
Je me penche dessus et je te tiens au courant.
a70m
Messages postés
2763
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
217
15 avril 2011 à 00:29
15 avril 2011 à 00:29
Tu viens de m'enlever une épine du pied le père !!
Merci beaucoup !!
après pas mal de modifications, et d'adaptions j'obtiens ce que je veux !
Je poste la source tout de même :
Encore merci pour ton aide précieuse!
Cordialement
a70m
Merci beaucoup !!
après pas mal de modifications, et d'adaptions j'obtiens ce que je veux !
Je poste la source tout de même :
$meschamps=array('couleur', 'annee', 'note'); $mesvariables=array($Couleur, $Annee, $Note); $condition=''; for ($k=0; $k< count($meschamps);$k++) { if ($condition != NULL AND $mesvariables[$k] != NULL) $condition .= ' AND '; if ($mesvariables[$k] != NULL) $condition .= $meschamps[$k]." LIKE '%".$mesvariables[$k]."%'" ; } if ($condition != NULL) $condition= ' WHERE '.$condition; $reponse = mysql_query("SELECT * FROM table $condition") or die(mysql_error());
Encore merci pour ton aide précieuse!
Cordialement
a70m