Problème tableaux croisés php
Résolu
O'scour
-
Skeletyon Messages postés 1552 Date d'inscription Statut Membre Dernière intervention -
Skeletyon Messages postés 1552 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
je dois faire un tableau avec un résultat provenant de 4 tables.
Les différentes table sont :
- CODEPROFS : nom - prenom - login - mdp
- CODEELEVES : nom - prenom - login - mdp - classe
- ATELIER : id - matiere - jour - loginprof - datesession - groupeac
- INSCRIPTION : logineleve - idatelier - datesession - jour
L'histoire c'est des prof qui après s'être identifier grâce à la table "CODEPROFS", créer un atelier qui se rajoute dans la table "ATELIER".
par la suite les élèves après s'être identifier grâce à la table "CODEELEVES", s'inscrivent à un atelier et une ligne est alors crée dans la table "INSCRIPTION".
Je dois au final afficher un tableau visible par les profs en fonction de critères qu'ils choisissent dans une page auparavant, avec le nom, prénom et la matière du prof et à la suite le nom et prénom des élèves qui se sont inscrit dans son atelier.
Exemple :
| prof 1 | prof 2 | prof 3 | prof 4 | prof 5 |
| math | français | anglais | physique | espagnol |
| eleve 1 | eleve 12 | | eleve 5 | eleve 58 |
| eleve 49 | eleve 27 | | | eleve 33 |
| | eleve 51 | | | |
J'obtiens les bon résultats de mes requêtes dans une table comme je veux et tout est presque OK.
Par contre je ne sais pas faire un tableau en colonne, donc mon résultat est en ligne, et ça, c'est pas trop grave MAIS......... LE PROBLÈME est que les noms et prénoms des élèves se répetent autant de fois que le nombre de professeurs trouvés par la requête.
ça me donne ça :
| prof 1 | math | eleve 1 | eleve 49 | eleve 1 | eleve 49 | eleve 1 | eleve 49 | eleve 1 ...
| prof 2 | français | eleve 12 | eleve 27 | eleve 51 | eleve 12 | eleve 27 | eleve 51 | le...
| prof 3 | anglais |
| prof 4 | physique | eleve 5 | eleve 5 | eleve 5 | eleve 5 | eleve 5 |
| prof 5 | espagnol | eleve 58 | eleve 33 | eleve 58 | eleve 33 | eleve 58 | eleve...
J'aimerais que le nom des élèves ne se répètent pas.
je sais que mon code est pas vraiment top et même empirique, j'ai fait une boucle dans une boucle pour arriver à mon résultat.
Si une âme charitable aurais la gentillesse de m'aider, merci.
Voici mon code :
je dois faire un tableau avec un résultat provenant de 4 tables.
Les différentes table sont :
- CODEPROFS : nom - prenom - login - mdp
- CODEELEVES : nom - prenom - login - mdp - classe
- ATELIER : id - matiere - jour - loginprof - datesession - groupeac
- INSCRIPTION : logineleve - idatelier - datesession - jour
L'histoire c'est des prof qui après s'être identifier grâce à la table "CODEPROFS", créer un atelier qui se rajoute dans la table "ATELIER".
par la suite les élèves après s'être identifier grâce à la table "CODEELEVES", s'inscrivent à un atelier et une ligne est alors crée dans la table "INSCRIPTION".
Je dois au final afficher un tableau visible par les profs en fonction de critères qu'ils choisissent dans une page auparavant, avec le nom, prénom et la matière du prof et à la suite le nom et prénom des élèves qui se sont inscrit dans son atelier.
Exemple :
| prof 1 | prof 2 | prof 3 | prof 4 | prof 5 |
| math | français | anglais | physique | espagnol |
| eleve 1 | eleve 12 | | eleve 5 | eleve 58 |
| eleve 49 | eleve 27 | | | eleve 33 |
| | eleve 51 | | | |
J'obtiens les bon résultats de mes requêtes dans une table comme je veux et tout est presque OK.
Par contre je ne sais pas faire un tableau en colonne, donc mon résultat est en ligne, et ça, c'est pas trop grave MAIS......... LE PROBLÈME est que les noms et prénoms des élèves se répetent autant de fois que le nombre de professeurs trouvés par la requête.
ça me donne ça :
| prof 1 | math | eleve 1 | eleve 49 | eleve 1 | eleve 49 | eleve 1 | eleve 49 | eleve 1 ...
| prof 2 | français | eleve 12 | eleve 27 | eleve 51 | eleve 12 | eleve 27 | eleve 51 | le...
| prof 3 | anglais |
| prof 4 | physique | eleve 5 | eleve 5 | eleve 5 | eleve 5 | eleve 5 |
| prof 5 | espagnol | eleve 58 | eleve 33 | eleve 58 | eleve 33 | eleve 58 | eleve...
J'aimerais que le nom des élèves ne se répètent pas.
je sais que mon code est pas vraiment top et même empirique, j'ai fait une boucle dans une boucle pour arriver à mon résultat.
Si une âme charitable aurais la gentillesse de m'aider, merci.
Voici mon code :
<?php //récuperation des données // On commence par récupérer les champs if( ! isset( $groupeeleve ) ) $groupeeleve = $_POST['groupeeleve']; else $groupeeleve=""; if( ! isset( $dates ) ) $dates = $_POST['dates']; else $dates=""; if( ! isset( $jour ) ) $jour = $_POST['jour']; else $jour=""; $login = $_SESSION['login'] ; $vide = ""; //connexion au serveur: $cnx = mysql_connect( "localhost", "root", "motdepasse" ); //sélection de la base de données: $db= mysql_select_db( "accper" ); //connexion au serveur: $cnx2 = mysql_connect( "localhost", "root", "motdepasse" ); //sélection de la base de données: $db2= mysql_select_db( "accper" ); //création de la requête SQL: // on ne choisit que les ateliers ou l'éleve s'est inscrit $sql = "SELECT nom, prenom, matiere, id FROM codeprofs, atelier WHERE atelier.loginprof = codeprofs.login AND atelier.datesession = '".$dates."' AND atelier.jour = '".$jour."' ORDER BY nom"; //exécution de notre requête SQL: $requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); ?> <table width="1000" border="1" align="center"> <tr> <?php while( $result = mysql_fetch_assoc( $requete ) ) { ?> <td><?php echo( "<div align=\"center\">".$result["nom"]."</div><div align=\"center\">".$result["prenom"]."" ); ?></td> <td><?php echo( "<div align=\"center\">".$result["matiere"]."</div>" ); ?></td><?php $idselection = $result['id']; // deuxieme requete dans la boucle______________________________________________________________________________________________________ $sql2 = "SELECT nom, prenom, idatelier FROM codeeleves, atelier, inscription WHERE '".$idselection."' = inscription.idatelier AND codeeleves.login = inscription.logineleve AND atelier.datesession = '".$dates."' AND atelier.jour = '".$jour."' ORDER BY atelier.id"; //exécution de notre requête SQL: $requete2 = mysql_query( $sql2, $cnx2 ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" ); while( $result2 = mysql_fetch_assoc( $requete2 ) ) { ?> <td><?php echo( "<div align=\"center\">".$result2["nom"]."</div><div align=\"center\">".$result2["prenom"]."</div>" ); ?></td> <?php } ?><tr></tr> <?php // Fin de la deuxieme requete____________________________________________________________________________________________________________ } ?> </tr> </table>
A voir également:
- Problème tableaux croisés php
- Tableaux croisés dynamiques - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fusionner deux tableaux excel - Guide
- Expert php pinterest - Télécharger - Langages
- Les tableaux word - Guide