[PHP-MYSQL] Tableau croisé dynamique
mamagubida10
Messages postés
57
Statut
Membre
-
mamagubida10 Messages postés 57 Statut Membre -
mamagubida10 Messages postés 57 Statut Membre -
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
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
Configuration: Windows 2000 Firefox 2.0.0.1
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 ;) -
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é ;)-
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(); -
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
-