Aller au contenu

aide pour requete Mysql


funeste

Messages recommandés

Bonjour,

je suis confrontée à un petit problème qui ne doit pas etre compliqué a résoudre, mais je n'y arrive pas, et cela fait quelques semaine que cela traine. Je ne sais plus à quel saint me vouer (et pourtant c'est la période de noel :) )

Je tente d'interroger une base de données, par l'intermédiaire, de MySQL. Cette base se compose de 4 champs principaux, appelés:

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 résultats 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 la requete a mis chemin, que je n'arrive pas a faire.

J'aimerai par exemple pouvoir demander:

Chercher "chien" de "Tous les auteurs" de "Maroc" de "Toutes les années"

Ainsi la réponse doit me donner tout les chiens 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

voici mon code, qui n'est surement pas parfait vu que je débute.

pour la creation des listes je recupere ce qu'il y a dans chaque champs de la table et j'utilise une ,commande de type post pour la recherche


<form action="reponsemenall.php" method = "post">
<p> <strong> Selection de l'espèce</Strong> <SELECT name = espece>
<OPTION value = toutes > Toutes les espèces </option>

<?
//selection de l'espece
$resultat1= mysql_query ( " SELECT DISTINCT espece FROM inventaire " );
if (mysql_num_rows ($resultat1) > 0 ) {
while ($ligne1 = mysql_fetch_array ($resultat1) ) {
echo '<option>' . $ligne1 ['espece'] . "\n";
}
}
?>
</SELECT>
<p> <strong> Selection de l'auteur </Strong> <SELECT name = auteur>
<OPTION value = tous > Tout les auteurs </option>

<?
//selection de l'auteur
$resultat2= mysql_query ( " SELECT DISTINCT auteur FROM inventaire " );
if (mysql_num_rows ($resultat2) > 0 ) {
while ($ligne2 = mysql_fetch_array ($resultat2) ) {
echo '<option>' . $ligne2 ['auteur'] . "\n";
}
}
?>
</SELECT>

<p> <strong> Selection de la zone </Strong> <SELECT name = zone>
<OPTION value = toutes > Toutes les zones </option>

<?
//selection de la zone
$resultat3= mysql_query ( " SELECT DISTINCT zone FROM inventaire " );
if (mysql_num_rows ($resultat3) > 0 ) {
while ($ligne3 = mysql_fetch_array ($resultat3) ) {
echo '<option>' . $ligne3 ['zone'] . "\n";
}
}
?>
</SELECT>

<p> <strong> Selection de l'année </Strong> <SELECT name = annee>
<OPTION value = toutes > Toutes les annees </option>

<?
//selection de l'annee
$resultat4= mysql_query ( " SELECT DISTINCT annee FROM inventaire " );
if (mysql_num_rows ($resultat4) > 0 ) {
while ($ligne4 = mysql_fetch_array ($resultat4) ) {
echo '<option>' . $ligne4 ['annee'] . "\n";
}

Dans le fichier reponsemenall.php, la requete de recherche se fait comme suit:

$var1 = $_POST ['espece'];

$var2 = $_POST ['auteur'];

$var3 = $_POST ['zone'];

$var4 = $_POST ['annee'];

$req = mysql_query ( " SELECT * FROM inventaire WHERE espece = '$var1' AND auteur = '$var2' AND zone = '$var3' AND annee = '$var4'") or die (mysql_error()) ;

merci de vos futures réponses et de votre gentillesse.

Funeste.

Lien vers le commentaire
Partager sur d’autres sites

je pense qu'en premier tu as une erreur de syntaxe:

echo '<option>' . $ligne1 ['espece'] . "\n";

devrait ressembler à:

echo '<option value=" ' . $ligne1 ['espece'] . ' ">' . $ligne1 ['espece'] . "</option>\n";

ensuite, n'oublies pas de mettre des guillemets pour les valeurs, car si celle ci comprend un espace, cela donnera une erreur.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...