[PHP-MYSQL] Tableau croisé dynamique

Fermé
mamagubida10 Messages postés 57 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 23 février 2007 - 22 févr. 2007 à 19:21
mamagubida10 Messages postés 57 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 23 février 2007 - 23 févr. 2007 à 20:35
Bonjour,


J'ai un souci avec la mise en place d'un tableau suite à des données stockées sur un serveur MySQL.

J'aurai besoin de votre aide s'il vous plait.

J'ai une table qui m'informe d'un NOM, PERIODE (janvier, fevrier), RESULTAT

Je souhaite donc mettre en place un tableua à 2 entrées avec en haut les périodes, à gauche les noms et dans le tableau les résultats correspondant à ces 2 entrées.

Je ne sais pas où commencer.

Auriez vous une astuce s'il vous plait ?

Merci d'avance
A voir également:

2 réponses

Tu crées un array vide nommé, par exemple, $array_all_results
Tu récupères le résultat de la requête, puis tu boucles avec:
for($i=0;$array_res = mysql_fetch_array($req_res);$i++)
Dans cette boucle, tu met le $array_res dans le $array_all_results, en prenant les noms comme clefs et les périodes comme valeurs.

A la fin du bouclage du for, tu auras ton tableau ;)
0
mamagubida10 Messages postés 57 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 23 février 2007 1
22 févr. 2007 à 20:50
Ok. Merci. Je vais essayer de faire quelque chose avec ce que tu me donnes. Mais ça va être dur dur car je suis un newbie. Mais merci beaucoup.
0
En fait, le for est là car il vaut mieux se répérer dans ce qu'on fait, mais on aurait très bien pu utiliser un while. L'avantage de cette méthode est que si on a un problème lors du bouclage ou du stockage, on voit où se situe ce problème, bref.

Si tu es sûr de ne pas avoir de problèmes (normalement c'est le cas), utilises un while.

ensuite, il te suffit, par exemple, de faire, dans la boucle:

$array_all_results[$array_res['nom']] = $array_res['periodes'];

Et le tour est joué ;)
0
mamagubida10 Messages postés 57 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 23 février 2007 1
23 févr. 2007 à 20:09
Quand vous dites qu'il faut mettre la requête dnas un array vide, il faut que je fasse cela ? :

// on crée la requête SQL
$sql = 'SELECT cl_agent.NOM,cl_agent.PRENOM,cl_primes.AHT,cl_primes.PERIODE FROM cl_agent, cl_primes WHERE cl_agent.MATRICULE=cl_primes.MATRICULE GROUP BY cl_agent.NOM,cl_primes.PERIODE';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$req=array();
0
mamagubida10 Messages postés 57 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 23 février 2007 1
23 févr. 2007 à 20:35
en fait j'ai fait ça :

// on crée la requête SQL
$sql = 'SELECT cl_agent.NOM,cl_primes.AHT,cl_primes.PERIODE FROM cl_agent, cl_primes WHERE cl_agent.MATRICULE=cl_primes.MATRICULE GROUP BY cl_agent.NOM,cl_primes.PERIODE';

// on envoie la requête
$req_res = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

//créer un tableau vide
$array_all_results=array();

//je fais ma boucle
for($i=0;$array_res = mysql_fetch_array($req_res);$i++)
                    {
                      echo $array_res[$i].'<br>';
//                      $array_all_results[$array_res['cl_agent.NOM']] = $array_res['cl_primes.PERIODE'];

                    }



et ça ne m'affiche que 1 NOM, 1 PERIODE et 1 RESULTAT
0