Page 1 sur 1

Afficher des résultats en fonction de requêtes préparées

Posté : 30 juil. 2013, 10:13
par Khidam
Encore moi...

Voilà mon problème :
J'ai un formulaire dans lequel je demande plusieurs choses aux utilisateurs :
1. Quelle requête ils veulent consulter : boutons radio avec par exemple comme choix "microbiologie" ou "flore", etc
2. Quels critères ils veulent appliquer sur cette requête : liste déroulante avec différentes variables de pH, ou différentes variables de type de sol.
J'ai réussi (grâce à Imikado) à créer mes requêtes préparées : sélection de la requête à afficher en fonction du choix, puis application des critères sélectionnés par l'utilisateur.

Mes requêtes sont (par définition) différentes les unes des autres :
Par exemple :
if (isset($_POST["choix"]) && $_POST["choix"] != "") {
                //Si c'est la flore qui est voulue
                if ($_POST["choix"] == "flore1") {
                               $requete = "SELECT MIN(INDICE_REL), MAX(INDICE_REL), AVG(INDICE_REL), SITE.LAND_USE FROM SITE INNER JOIN FLORE_AG ON FLORE_AG.CODE_MODALITE = SITE.CODE_MODALITE";
                }
                //Si c'est la microbio qui est voulue
               elseif ($_POST["choix"] == "microbio1") {
                               $requete = "SELECT MIN(BIOMASSE), MAX(BIOMASSE), AVG(BIOMASSE), MIN(TTGE), MAX(TTGE), AVG(TTGE), SITE.LAND_USE FROM SITE INNER JOIN MICROBIO ON MICROBIO.CODE_REPET = SITE.CODE_REPET";
                }
Comment je peux faire ensuite pour afficher le résultat, sachant que je connais par ex ce moyen :
while ($donnees = $reponse->fetch())
{
 echo $donnees['MIN(INDICE_REL)'];
}
qui va fonctionner pour la flore
mais comment faire pour que ça fonctionne pour les autres requêtes ?? Il faut écrire l'ensemble des résultats qu'on veut, et le php n'affichera que le résultat de la requête sélectionnée, ou il y a un autre moyen ???
ex :
while ($donnees = $reponse->fetch())
{
echo $donnees['MIN(INDICE_REL)'];
echo $donnees['MAX(INDICE_REL)'];
echo $donnees['AVG(INDICE_REL)'];
echo $donnees['MIN(TTGE)'];
echo $donnees['MAX(TTGE)'];
echo $donnees['AVG(TTGE)'];
//...
}
Merci beaucoup pour vos réponses !

Re: Afficher des résultats en fonction de requêtes préparées

Posté : 30 juil. 2013, 11:34
par imikado
Indiquez un alias dans vos requêtes (pour récupérer en php)
 $requete = "SELECT MIN(INDICE_REL) as minimum, MAX(INDICE_REL) as maximum, AVG(INDICE_REL) as moyenne, SITE.LAND_USE FROM SITE INNER JOIN FLORE_AG ON FLORE_AG.CODE_MODALITE = SITE.CODE_MODALITE";
Vous récupererez ainsi toujours
echo 'minimum : '. $donnees['minimum'];
echo 'maximum: '. $donnees['maximum'];
echo 'moyenne: '. $donnees['moyenne'];


Re: Afficher des résultats en fonction de requêtes préparées

Posté : 30 juil. 2013, 12:23
par Khidam
ça fonctionne effectivement quand on a qu'un seul paramètre dans la requête...
mais si on considère ma 2ème requête, microbio, il y a 2 paramètres différents à considérer... et je ne peux pas les appeler aussi minimum, maximum et moyenne...
comment faire ??
Et comment faire pour que dans la réponse sur ma page cible, je puisse savoir de quel paramètre on a la réponse ?

ex :
Microbio
Biomasse
Minimum :
Maximum :
Moyenne :

TTGE
Minimum :
Maximum :
Moyenne :

Re: Afficher des résultats en fonction de requêtes préparées

Posté : 30 juil. 2013, 12:29
par imikado
Dans ce cas la, il va falloir pour chaque sortie différente faire un tableau d'affichage différent :(

Re: Afficher des résultats en fonction de requêtes préparées

Posté : 30 juil. 2013, 14:47
par Khidam
c'est-à-dire ça ? :

while ($donnees = $reponse->fetch())
{
?>
<p>
MIN : <?php echo $donnees['MIN(INDICE_REL)']; ?> <br />
MAX : <?php echo $donnees['MAX(INDICE_REL)']; ?> <br />
MOY : <?php echo $donnees['AVG(INDICE_REL)']; ?> <br />
MIN : <?php echo $donnees['MIN(TTGE)']; ?> <br />
MAX : <?php echo $donnees['MAX(TTGE)']; ?> <br />
MOY : <?php echo $donnees['AVG(TTGE)']; ?> <br />
//...
</p>

et comment faire pour afficher :
Flore
Indice Relatif :
MIN :
MAX :
MOY :

ou

Microbiologie
TTGE :
MIN :
MAX :
MOY :

en fonction de ce qui est choisi ?

Re: Afficher des résultats en fonction de requêtes préparées

Posté : 30 juil. 2013, 15:42
par imikado
Utilisez plutot la variable choix
if ($_POST["choix"] == "flore1") {
pour afficher le tableau flore1... :)

Parcontre utilisez des alias pour vos min,max... plus simple pour récuperer les valeurs

Re: Afficher des résultats en fonction de requêtes préparées

Posté : 30 juil. 2013, 16:45
par Khidam
Yes !!! :D
ça fonctionne !! c'est un peu chiant de devoir tout taper, mais avec les alias, c'est déjà vachement mieux !!!
merci Imikado !! vous êtes vraiment top !! hyper pédagogue et disponible !!!
vous êtes marié ??? nan, je déconne... :wink:

Re: [RESOLU] Afficher des résultats en fonction de requêtes

Posté : 30 juil. 2013, 17:43
par imikado
Oui marié, et une fille ;)
Bon courage pour la suite :)