php/mysql résultat requête dans une seule variable

php/mysql résultat requête dans une seule variable - PHP - Programmation

Marsh Posté le 23-03-2010 à 10:12:35    

Bonjour,  
je me permets de poster un message car après des jours de recherches et de tests je n'ai toujours pas résolu ce problème.  
Je souhaiterai récupérer le résultat d'une requête dans une seule variable afin d'utiliser cette variable dans un menu déroulant  
 
<code> :  
DEFINITION DU MENU DEROULANT
<select name="choixEnt" id="choixEnt"  onChange="this.form.submit();">
 
1ERE OPTION
  <option value="choice" selected="selected"> Choix Entites </option>
 
REQUETE PERMETTANT DE SLECTIONNER LES DONNEES UNE PAR UNE (pas de soucis pour cette option)
 
<?php  $req = "SELECT DISTINCT ENTITE FROM ua";  
  $res = mysql_query($req) or die('Erreur SQL !<br />' . $req . '<br />' . mysql_error());  
   
  while ($row= mysql_fetch_array($res)){
  $entit= $row['ENTITE'];
   
 ?>
SECONDE OPTION AVEC LE RESULTAT DE LA REQUETE (pas de probleme)
  <option value="<?php echo $entit;?>" <?php if((isset($_POST['choixEnt']))and($_POST['choixEnt']==$entit)) echo "selected";?>><?php echo $entit;?> </option>
<?php  
  }  
 
LA PROBLEME, JE SOUHAITERAI UNE AUTRE OPTION QUI CENTRALISE TOUTES LES ENTITES RECUPEREES DE LA TABLE EN UNE SEULE VARIABLE AFIN DE POUVOIR SELECTIONNER "TOUTES LES ENTITES"
<option value="<?php echo ???;?>" <?php if((isset($_POST['choixEnt']))and($_POST['choixEnt']==???)) echo "selected";?>>TOUTES LES ENTITES</option>
 
J'espere que c'est compréhensible.
Si c'est le cas j'attends avec impatience vos j'espere futur réponses  
Merci  
 

Reply

Marsh Posté le 23-03-2010 à 10:12:35   

Reply

Marsh Posté le 23-03-2010 à 14:38:42    

aucunes remarques ? solution? adresse utile ?  
UP! s'il vous plait

Reply

Marsh Posté le 23-03-2010 à 14:49:37    

Adou37 a écrit :

aucunes remarques ?

si, plusieurs:
- écrire en minuscule
- utiliser les balises [ code][ /code] http://forum-images.hardware.fr/icones/message/c.gif pour poster du code

  


tu crées une variable vide avant ta boucle, et à chaque itération tu lui concatène la valeur courante par exemple.

 

dans ce genre là:

Code :
  1. $allEntit = "";
  2. while ($row= mysql_fetch_array($res)){
  3.   $entit= $row['ENTITE'];
  4.   $allEntit .= $entit.";";
  5. [...]
  6. }


Message cité 1 fois
Message édité par pataluc le 23-03-2010 à 14:49:56
Reply

Marsh Posté le 23-03-2010 à 15:07:43    

pataluc a écrit :

si, plusieurs:
- écrire en minuscule
- utiliser les balises [ code][ /code] http://forum-images.hardware.fr/icones/message/c.gif pour poster du code
 
 
 
 
tu crées une variable vide avant ta boucle, et à chaque itération tu lui concatène la valeur courante par exemple.
 
dans ce genre là:

Code :
  1. $allEntit = "";
  2. while ($row= mysql_fetch_array($res)){
  3.   $entit= $row['ENTITE'];
  4.   $allEntit .= $entit.";";
  5. [...]
  6. }




 
 
Bonjour,  
Désolé pour les majuscules et les balises je le referai plus !!  
Merci pour l'idée , j'avais déjà essayé de faire cette méthode mais je ne dois pas bien ecrire mon code car j'ai bien toutes les entites sur une ligne sauf que lorsque je fais le select il ne me retourne rien aucune valeur.  
 

Code :
  1. <select name="choixEnt" id="choixEnt"  onChange="this.form.submit();">
  2.  <option value="choice" selected="selected"> Choix Entites </option>
  3. <?php  $req = "SELECT DISTINCT ENTITE FROM ua";
  4.  $res = mysql_query($req) or die('Erreur SQL !<br />' . $req . '<br />' . mysql_error());
  5. $allEntit = "";
  6. while ($row= mysql_fetch_array($res)){
  7. $entit= $row['ENTITE'];
  8. $allEntit .= $entit.";";
  9. ?>
  10. <option value="<?php echo $entit;?>" <?php if((isset($_POST['choixEnt']))and($_POST['choixEnt']==$entit)) echo "selected";?>><?php echo $entit;?> </option>
  11. <option value="<?php echo $allEntit;?>" <?php if((isset($_POST['choixEnt']))and($_POST['choixEnt']==$allEntit)) echo "selected";?>>var</option>
  12. <?php
  13.   }
  14. ?>


 
Merci  

Reply

Marsh Posté le 23-03-2010 à 16:19:38    

déja il faut que la ligne du dernier <option> soit après ta boucle.
 
ensuite, ca devrait t'envoyer dans $_POST['choixEnt'] la liste de toutes les entités et t'as plus qu'a les traiter. (mais pour ca il faudra les splitter avant).
 
sinon tu mets une dernière <option> qui contient comme value "*" par exemple et tu vérifie dans le traitement de ton formulaire si c'est "*" épicétou.

Reply

Marsh Posté le 23-03-2010 à 16:35:10    

pataluc a écrit :

déja il faut que la ligne du dernier <option> soit après ta boucle.
 
ensuite, ca devrait t'envoyer dans $_POST['choixEnt'] la liste de toutes les entités et t'as plus qu'a les traiter. (mais pour ca il faudra les splitter avant).
 
sinon tu mets une dernière <option> qui contient comme value "*" par exemple et tu vérifie dans le traitement de ton formulaire si c'est "*" épicétou.


 
 
déja il faut que la ligne du dernier <option> soit après ta boucle.
-> déjà fait  
 
ensuite, ca devrait t'envoyer dans $_POST['choixEnt'] la liste de toutes les entités
->oui en effet mais apparemment ce n'est pas reconnu  
 
et t'as plus qu'a les traiter
-> comment ?  
 
les splitter  
-> ça fait à peinde 2 mois que je fais du php donc la ................ ???  
 
une dernière <option> qui contient comme value "*" par exemple et tu vérifie dans le traitement de ton formulaire si c'est "*"
-> j'suis paumée LOL  
 
voici le code du menu c'est peut etre à ce niveau que ça bug :  
 

Code :
  1. if((isset($_POST['choixDat']))and(!empty($_POST['choixDat']))){
  2.  $recup=$_POST['choixDat'];
  3. if((isset($_POST['choixEnt']))and(!empty($_POST['choixEnt']))) {
  4.  $ent=$_POST['choixEnt'];
  5. switch ($recup) {
  6. case "choix" :
  7. $requete = "SELECT ua.ENTITE,ua.AdresseIP,notifications.AdresseIP,notifications.SourceMAJ,notifications.DateUA,notifications.ETAT FROM ua,notifications
  8. WHERE ua.AdresseIP=notifications.AdresseIP
  9. AND ua.ENTITE='$ent'
  10. ORDER BY DateUA";
  11. $result = mysql_query($requete) or die("Erreur dans l'extraction des informations case hlauj<br>" );
  12. break;
  13. case "hlauj" :
  14. $requete = "SELECT ua.ENTITE,ua.AdresseIP,notifications.AdresseIP,notifications.SourceMAJ,notifications.DateUA,notifications.ETAT FROM ua,notifications
  15.  WHERE ua.AdresseIP=notifications.AdresseIP
  16.  AND ua.ENTITE='$ent'
  17.  AND DateUA='$today'
  18.  AND ETAT='Hors Ligne'";
  19. $result = mysql_query($requete) or die("Erreur dans l'extraction des informations case hlauj<br>" );
  20. break;
  21. case "uajour" :
  22. $requete = "SELECT ua.ENTITE,ua.AdresseIP,notifications.AdresseIP,notifications.SourceMAJ,notifications.DateUA,notifications.ETAT FROM ua,notifications
  23.  WHERE ua.AdresseIP = notifications.AdresseIP
  24.  AND ua.ENTITE='$ent'
  25.  AND DateUA='$today'";
  26. $result = mysql_query($requete) or die("Erreur dans l'extraction des informations case uajour<br>" );
  27. break;
  28. Et ainsi de suite pour chaque option de choixDat
  29.  }


 
ça fonctionne pour chaque entités distincte mais pas l'ensemble
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed