Tableau : je dois pouvoir ne pas perdre tous mes cheveux...

Tableau : je dois pouvoir ne pas perdre tous mes cheveux... - PHP - Programmation

Marsh Posté le 13-03-2013 à 10:07:37    

Bonjour,
 
je pense pouvoir me simplifier grandement la vie mais je n'y arrive pas. Peut-être votre aide me sera très utile :)
 
BESOINS
Je souhaite récupérer le résultat de ma requete MySQL et créer la liste déroulante suivante :
<option value="id_chambre">id_chambre_type | nom prenom</value>
 
Ce qui donnerait pour une chambre à un seul occupant :
<option value="2410">1 | BERNARD PATRICIA</value>
 
et ce qui donnerait pour une chambre double :
<option value="2501">1 | RIEHL BERNARD, RIEHL NELLY</value>
 
TABLEAU
Ma requête me revoie le tableau suivant :
 
Array
(
    [0] => Array
        (
            [nom] => BERNARD
            [prenom] => PATRICIA
            [id_chambre] => 2410
            [id_chambre_type] => 1
        )
 
    [1] => Array
        (
            [nom] => RIEHL
            [prenom] => BERNARD
            [id_chambre] => 2501
            [id_chambre_type] => 2
        )
 
    [2] => Array
        (
            [nom] => RIEHL
            [prenom] => NELLY
            [id_chambre] => 2501
            [id_chambre_type] => 2
        )
)
 
 
MON PROBLEME
Je n'en aurais pas si j'avais que des chambres individuelles à traiter.  
Mais pour le cas des chambres doubles ou triples, je souhaite afficher une seule fois l'id de la chambre, et le nom de tous ses occupants dans un seul option du select.
 
Si j'ai été assez compréhensible et que vous avez la solution ultime, je suis preneur !
 
Sinon je préparerais d'avantage mon tableau en amont.
Merci,

Reply

Marsh Posté le 13-03-2013 à 10:07:37   

Reply

Marsh Posté le 13-03-2013 à 10:24:46    

Le plus facile à mettre en place  
 
 tu utilises un bout de code comme ça :  

Code :
  1. //lors de la récup
  2. $chambres = array();
  3. while(list($nom,$prenom,$id_chambre,id_chambre_type) = mysql_fetch_array($result)){
  4.  
  5.    if(empty($chambres[$id_chambre]){
  6.       $chambres[$id_chambre] = array(''=>$id_chambre_type, occupants=>array());
  7.    }
  8.     $chambres[$id_chambre]['occupants'][] = array('nom'=>$nom,'prenom'=>$prenom);
  9. }
  10.  
  11.  
  12. //lors de l'affichage
  13. echo '<select name="truc">';
  14. foreach($chambres as $id_chambre =>$chambre){
  15.     echo '<option value='".$id_chambre.'">
  16.     echo $chambre['id_chambre_type'].' | ';
  17.     echo implode(',',$chambre['occupants']);
  18.     echo '<option>';
  19.  
  20. }
  21. echo '</select>';


 
Je n'ai pas ajouté la partie echappement de caractère pour eviter des nom type <script>alert('pwet');</script>


---------------

Reply

Marsh Posté le 13-03-2013 à 10:27:11    

Merci bcp de ta rapidité.
J'essaie ça immédiatement :)

Reply

Sujets relatifs:

Leave a Replay

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