begin process at 2012 05 30 19:50:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

interroger une table grace a des liste déroulante


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

interroger une table grace a des liste déroulante

mercredi 22 décembre 2004 à 18:39:07 | interroger une table grace a des liste déroulante

funeste

Bonjour,


je suis confrontée à un petit probleme qui ne doit pas etre compliqué a résoudre mais, je n'y arrive pas et cela fait quelques semaine que cela traine.

Je tente d'interroger une base de données, par l'intermédiaire, de MySQL. Cette base se compose de 4 champs principaux, appeles:
Espèces, Auteur, Lieu, Année.

Pour chaque champs j'ai crée une liste déroulante comportant les differentes entrées.
Par exemple

espece: Toutes, Chien, Chat, Lapin, Mouton....
Auteur: Tous, Dupont, Durant, ....
Lieu: Tous, France, Italie, Maroc....
Année: Toutes, 1990, 1999, 2001, 2002....

Le but etant d'interroger la table grace à ces listes.

J'arrive donc a obtenir un resultats si je demande une requete de type:

chercher: Toutes les espèces" de "tous les auteurs" de tout les lieux" de "toutes les années".
Cela me reponds donc, comme je le demande toutes les entrées de la table.

J'arrive aussi à avoir une réponse si je fait une recherche en utilisant un membre de la liste pour chaque champ:
ex chercher "chien" de "Dupont" de "France" de "1990"

Mon probleme ce situe sur les requete a mis chemin, que je n'arrive pas a faire.

J'aimerai par exemple pouvoir demander:

Chercher "chien" de "Tous" de "Maroc" de "Toutes"

Ainsi la répose doit me donner tout les chien trouver au maroc pour toutes les annees et tout les auteurs

A la sortie j'aimerai bien sur avoir une reponse me donnant:
1- chien, l'auteur, Maroc, annees
2- chien, l'auteur, Maroc, annees
etc
Comment faire?
merci de vos réponse et de votre gentillesse.
Funeste.



jeudi 23 décembre 2004 à 17:26:25 | Re : interroger une table grace a des liste déroulante

malalam

Administrateur CodeS-SourceS
Salut,
que je sois sur d'avoir compris, tu as 1 table, avec 4 champs (espece, auteur, lieu, annee), et la 1ere ligne de ta table est composee de : espece=chien, auteur=dupont, lieu=france, annee=1990?

Dans ce cas tu n'auras pas de chien lie avec dupont, et Maroc?
Il te faut 4 tables, et lier les tables entre elles en fonction de...ben des relations qu'il y a entre tes tables. (un auteur a un animal, ou pas, si oui, de quelle espece, ou vit-il, etc...)
jeudi 23 décembre 2004 à 17:30:16 | Re : interroger une table grace a des liste déroulante

malalam

Administrateur CodeS-SourceS
Pardon, je dis des conneries...suis fatigue la.
Dans ta table, tu as a chaque ligne, une espece, un auteur, un lieu, et une annee? On peut avoir par exemple : chien, 1990, dupont, France et une autre ligne : chien, 2002, durand, Maroc
C'est ca?

Dans ce cas :

SELECT * FROM matable WHERE espece='chien' AND lieu='Maroc'

Voila la requete pour ton exemple.
vendredi 24 décembre 2004 à 11:04:18 | Re : interroger une table grace a des liste déroulante

malalam

Administrateur CodeS-SourceS
Dans tous les cas (oui, C encore moi), il faut que tu fasses des tests, pour le choix "tous".
Genre :

Si $espece=="Toutes"
alors $espece=""
sinon $espece=$espece

puis un test pour voir si une de tes variables est remplie:
si $espece || $auteur...etc
alors $condition="WHERE "

ensuite tester s'il y a plusieurs choix, et si oui $operateur=" AND " sinon $operateur=""

sinon $condition=""

par exemple, et en gros hein.

apres ta requete donneras un truc du genre
SELECT * FROM matable $condition $espece $operateur $auteur $operateur ...etc

Ca devrait a peu pres marcher. Mais C a la louche, y a surement des trucs a modifier. Y a l'idee disons.
vendredi 24 décembre 2004 à 14:47:56 | Re : interroger une table grace a des liste déroulante

funeste

Bonjour,

merci pour tes reponses malalam.

je n'ai pas encore eu le temps de tester tes conseil mais je poste quand meme pour t'eclairer un peu sur ce que j'essaye de faire.

j'ai donc une table avec 4 champs

Especes, auteur, lieu, années

elle est remplie de cette facon:

Chien dupont france 1990
Chat durand maroc 2002
serpent martin belgique 2001
mouton rolland espagne 2000
chien durand france 1999
chat dupont maroc 2003

si je selectionne dans mes liste 'chien'+'dupont'+'france'+'1990'
j'arrive a obtenir le bon résultat.
Si je fait une requete du types 'select * from table' j'obtient toute les entrée de la table.
Mon probleme se situe entre les deux

Je n'arrive pas a contruire une requete pouvant me donner le résultat d'une sélection du type

selection 'chien'+'tout'+'france' +'tout'
ou la reponse devrait etre:

chien dupont france 1990
chien durand france 1999

donc mes deux questions sont,

comment faire pour que lorsque je selectionne les 'Tout' de mes listes deroulantes, la totalité des entrée de ce champs soit effectivement selectionné?

Comment construire la requete dont je t'ai parlé au dessus.

C'est une recherche croisée sur les champs d'une table qui contient un bon millier de ligne, donc je dois créer une requete assez générale.

Merci pour ton aide je vais de ce pas tester ce dont tu m'as parler.
Funeste.
vendredi 24 décembre 2004 à 16:35:57 | Re : interroger une table grace a des liste déroulante

malalam

Administrateur CodeS-SourceS
Re,

ben de rien.
Ben oui, c'est ce que je t'explique; a mon avis, tu peux te debrouiller pour ne creer qu'une seule requete pour toutes tes interrogations de la table, en utilisant des variables : variable pour la condition (vide, ou WHERE), pour les operateurs, pour les champs de recherche.
Si tu te debrouilles bien, tu dois pouvoir obtenir chaque fois une requete valide.
Disons que si le choix pour la recherche est :
chien
et les autres champs a Tous :

$condition="WHERE" (il y a au moins 1 critere de recherche)
$operateur[champ] s'il y a plusieurs criteres de recherche et en fonction des champs choisis...tu en auras 3 : $operateur[auteur], $operateur[lieu] et $operateur[annee]="" ou ="AND"
$espece="chien" (c'est le critere de recherche)
$auteur, $lieu, $annee ="" (ils sont fixes a Tous)

$selection_requete=" ".$espece." ".$operateur[auteur]." ".$auteur." ".$operateur[lieu]." ." ".$lieu." ".$operateur[annee]." ." ".$annee." "

mais il faut optimiser ces variables parceque la c'est un peu le bordel et je suis sur qu'en reflechissant un peu on arrive a un truc bcp moins complique, avec moins de variables.

ta requete : SELECT * FROM table $condition $selection_requete

Elle devrait etre valable dans tous les cas de figure.
mercredi 5 janvier 2005 à 14:14:00 | Re : interroger une table grace a des liste déroulante

funeste

bonjour,

je suis toujours dans cette histoire de requetes

J'essaye de faire comme tu m'as dit Malalam, mais je suis confronté a un petit probleme,
je n'obtient pas de reponse à la requete.

Pour le moment je me suis concentrer sur un seul champ de ma table
voici mon code.

$var1 = $_POST ['espece'];
echo " votre recherche s'effectue sur les paramètres suivant: '$var1'  <br><br>";

//Condition de la requete.

if ($var1 == "toutes") {
$espece="";
$condition="";
}
else {
$espece=$var1;
$condition="WHERE espèce = ";
echo "$condition $espece <br><br>";
}

// Etablissement de la connexion
$connexion = mysql_connect("localhost","root","") or die ("La connexion ne s'est pas effectuée !");

mysql_select_db("biodiversite") or die ("Connexion à la base impossible !");

$resultat= mysql_query ( "SELECT * FROM inventaire $condition ".$espece." ");

// Réponse à la requète

if ($resultat == False)
    {
        echo "Aucun résultat ne correspond à vos critères de recherche.\n";
    }
   
    else
    {
        while ($ligne = mysql_fetch_array($resultat)) {
       
            $esp= $ligne['espece'];
            echo " Voici le resultat de votre recherche: espèce = $esp \n <br><br>";
            }
    }
?>
lorsque je selectionne Tout pour le champs espèce, j'obtient une réponse, la pas de probleme.
Mais lorsque je specifie l'espece, pas de réponse ni de message d'erreur,  c'est comme si il ne fais ait pas la requete.
Pourtant la connexion sur la base se fait bien puisque cela marche pour la premiere requete.
Je rame j'y cmprends rien
HELP

Funeste.


Cette discussion est classée dans : table, liste, interroger, maroc, chien


Répondre à ce message

Sujets en rapport avec ce message

Exclure table [ par agenceacapulco ] Bonjour, Je souhaiterais savoir si on peut exclure certaines tables d'une liste deroulante parametrée via maa bdd... car compte tenu que je n'est qu' tableau dynamique [ par nana999 ] bonjour svp j'ai un problème j'ai crée une liste de sélection dynamique a une table 'a' puis j'ai aussi sur la même page une table dynamique a la tab requete sql php [ par enchien ] Bonjour a tous, Mon problème est le suivant : J'ai une base de données avec les trois tables suivantes (j'utilise sqlite3): Table Users ----------- Besoin d'aide pour fonction GetList [ par guillaumepinho ] J'utilise la fonction pour générer un dropdown(liste)dans un formulaire à partir d'une table. J'ai aucune faute mais ma liste reste toujours vide. Qq' faire un select dans ma table eleve [ par msi079 ] salut a vous j'ai crée une table a partir de laquelle je veux faire un SELECT mais je reçois l'erreur : ---------------------------------------------- Déplacer une fiche dans une liste [ par lou17 ] Bonjour, Je ne parviens pas à résoudre le problème qui consiste à déplacer une fiche dans une liste et reclasser ensuite cette liste : il s'agit d'un Liste déroulante MAJ???? [ par rich25200 ] Bonjour,J'ai une liste déroulante alimenter par une table prenons par exemple la table famille ou dans ma liste il y a tout les noms de famille..Je ve question sur les formulaires et bd de debutant [ par herveguedj ] Voila je debute en php et j'ai dans un formulaire membre une table membre et une table region le formulaire contient une zone liste qui liste toutes l double liste deroulante + BDD [ par pixelver ] Bonjour, je suis en train de faire une double liste deroulante dont les donnees sont dans une base de donnees. J'ai une liste de cours:Id tablename co Liste déroulante [ par djamine ] Bonjour ,J'ai 2 table PAYS ( code_pays , pays ) , et Ville (code_pays , ville )j'affiche dans une liste ( combo ) toute les pays depuis le champspays


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 2,668 sec (3)

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