array un peu spécial (mysql inside)

array un peu spécial (mysql inside) - PHP - Programmation

Marsh Posté le 02-12-2007 à 16:22:38    

Hello !
 
je suis en train de coder un site et j'avoue bloquer sur un probleme...
 

Code :
  1. mysql> select * FROM languages;
  2. +----+---------+-----------+--------+
  3. | id | name    | shortname | flag   |
  4. +----+---------+-----------+--------+
  5. |  1 | English | en        | en.png |
  6. |  2 | French  | fr        | fr.png |
  7. |  3 | German  | de        | de.png |
  8. |  4 | Spanish | es        | es.png |
  9. |  5 | Russian | ru        | ru.png |
  10. +----+---------+-----------+--------+
  11. 5 rows in set (0.00 sec)
  12. mysql> select * FROM users;
  13. +----+-------------+----------------------------------+--------------------------+--------+------------+------------+------+--------------------------+----------+-------+
  14. | id | username    | password                         | email                    | avatar | regdate    | last_login | rank | fullname                 | language | title |
  15. +----+-------------+----------------------------------+--------------------------+--------+------------+------------+------+--------------------------+----------+-------+
  16. |  1 | admin       | 21232f297a57a5a743894a0e4a801fc3 | admin@blabla.com    | none   | 0000-00-00 | 02/12/2007 |    5 | Webadmin                 | 2       | TL    |
  17. (je n'ai mis que le premier utilisateur)


Code :
  1. $query_languages = "SELECT * FROM languages";
  2. $languages = mysql_query($query_languages, $qa) or die(mysql_error());
  3. do
  4. $curlangid = $row_languages['id'];
  5. $curlangshortname = $row_languages['shortname'];
  6. $query_posters = "SELECT id, username, language FROM users WHERE language = '$curlangid' ORDER BY username ASC";
  7. $posters = mysql_query($query_posters, $qa) or die(mysql_error());
  8. $row_posters = mysql_fetch_assoc($posters);
  9. } while ($row_languages = mysql_fetch_assoc($languages));
  10.   $rows = mysql_num_rows($languages);
  11.   if($rows > 0) {
  12.       mysql_data_seek($languages, 0);
  13.   $row_languages = mysql_fetch_assoc($languages);
  14.    }


 
j'ai donc une liste de langues et d'utilisateurs dans deux tables mysql, et j'aimerai generer plusieurs arrays contenant la liste des utilisateurs, un pour chaque langue.
 
par exemple, un array avec les utilisateurs anglais qui serai $row_en_posters, un avec les utilisateurs français $row_fr_posters. etc, autant qu'il y as de langues.
comment faire pour que le nom de la variable change à chaque fois ? et est ce que je pourrais bien l'utiliser apres ? (hors du do-while)
 
$row_.$curlangshortname._posters ? (ça m'etonnerai que ça fonctionne mais c'est pour donner un exemple de ce que je souhaite)
 
le but c'est d'afficher une liste d'utilisateurs pour chaque langue, à utiliser dans plusieurs menu déroulants.
 
$curlangshortname contient les initiales de chaque langue (en, fr, de etc..)
 
je suis peut etre completement à coté de la plaque, c'est pour ça que je demande...  
 
si vous pouviez me guider un peu sur ce coup là ça serai sympa
 
merci!

Reply

Marsh Posté le 02-12-2007 à 16:22:38   

Reply

Marsh Posté le 02-12-2007 à 16:54:58    

pourquoi ne ferai tu pas un seul tableau
$t_utilisateurs[$langue] = tableau de tous les utilsiateurs qui tuilisent une langue

Reply

Marsh Posté le 02-12-2007 à 17:04:23    

flo850 a écrit :

pourquoi ne ferai tu pas un seul tableau
$t_utilisateurs[$langue] = tableau de tous les utilsiateurs qui tuilisent une langue


 
et apres pour extraire le nom d'utilisateurs il faudra utiliser quoi par exemple ?
 
$t_utilisateurs[$langue]['username'] ?

Reply

Marsh Posté le 02-12-2007 à 18:23:36    

Code :
  1. foreach($t_utilisateurs[$langue]['username']  as $langue=>$t_)
  2. {
  3.         echo 'liste des utilisateurs de '.$langue.' :';
  4.         foreach($t_ as $utilisateur)
  5.         {
  6.               echo $utilisateur.'<br>';
  7.          }
  8. }

Reply

Sujets relatifs:

Leave a Replay

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