[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
A voir également:
- Es données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif suivant. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des 4 premières colonnes. cinq valeurs manquent dans le tableau suivant. retrouvez-les dans votre tableau puis reportez-les, arrondies à l’entier le plus proche, dans la zone de réponse.
- Dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. - Guide
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Fichier bin - Guide
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 ;)
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 ;)
mamagubida10
Messages postés
57
Statut
Membre
1
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.
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é ;)
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 :
et ça ne m'affiche que 1 NOM, 1 PERIODE et 1 RESULTAT
// 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