Probleme d'affichage de tableau mysql/php
Résolu/Fermé
desc1988
Messages postés
9
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
17 mars 2008
-
10 mars 2008 à 21:21
GaNoCla - 7 mai 2008 à 18:22
GaNoCla - 7 mai 2008 à 18:22
A voir également:
- Probleme d'affichage de tableau mysql/php
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Easy php - Télécharger - Divers Web & Internet
7 réponses
desc1988
Messages postés
9
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
17 mars 2008
1
10 mars 2008 à 23:31
10 mars 2008 à 23:31
Rien a dire, mis a part que vous avez oublié un ; après la variable $classeprecedente = 'truc' et que vous avez écris $donnes['classe'] au lieu de $donnees['classe'].
Je vous charrie un peu car je jalouse vaut talent de programmeur.
Je ne sais comment vous remercier pour votre aide.
Merci infiniment sincèrement.
Je suis impressionner par l'efficacité de ce site et par la qualité de ses membres.
Merci encore.
Je vous charrie un peu car je jalouse vaut talent de programmeur.
Je ne sais comment vous remercier pour votre aide.
Merci infiniment sincèrement.
Je suis impressionner par l'efficacité de ce site et par la qualité de ses membres.
Merci encore.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
10 mars 2008 à 21:27
10 mars 2008 à 21:27
Bonsoir
En fait, le code dans la boucle while sera exécuté à chaque itération, il est donc normal qu'il y ait un tableau par étudiant...
Pour remédier à ce problème, il faudrait faire quelque chose du genre ordonner les résultats de la requête par classe, puis faire un test pour le création du tableau : ne le créer que si la classe est différentes de la classe de l'itération précédente, sinon ajouter l'étudiant à la classe courante.
J'espère que ma suggestion est compréhensible et qu'elle répondra à votre problème.
Bonne soirée
En fait, le code dans la boucle while sera exécuté à chaque itération, il est donc normal qu'il y ait un tableau par étudiant...
Pour remédier à ce problème, il faudrait faire quelque chose du genre ordonner les résultats de la requête par classe, puis faire un test pour le création du tableau : ne le créer que si la classe est différentes de la classe de l'itération précédente, sinon ajouter l'étudiant à la classe courante.
J'espère que ma suggestion est compréhensible et qu'elle répondra à votre problème.
Bonne soirée
desc1988
Messages postés
9
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
17 mars 2008
1
10 mars 2008 à 21:34
10 mars 2008 à 21:34
Merci pour cette réponse si rapide.
Je sais comment ordonner par classe en revanche le test me parait moins réalisable (en gros je ne sais pas comment m'y prendre).
Pouvez vous m'en dire un peu plus sur le code à mettre afin de réaliser le test?
merci d'avance.
Je sais comment ordonner par classe en revanche le test me parait moins réalisable (en gros je ne sais pas comment m'y prendre).
Pouvez vous m'en dire un peu plus sur le code à mettre afin de réaliser le test?
merci d'avance.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
10 mars 2008 à 21:44
10 mars 2008 à 21:44
Je pensais à une variable temporaire qui mémoriserait la valeur de la classe à l'itération précédente et un test du genre :
Je ne suis pas spécialiste de PHP et encore moins de MySQL mais je pense que vous devriez pouvoir adapter ce code à vos besoins. N'hésiter pas à demander si quelque chose ne vous semble pas clair.
classe_precedente = NULL tant que (...) faire si ( classe = classe_precedente) alors ajouter l'étudiant au tableau sinon créer un nouveau tableau ajouter l'étudiant au tableau finsi classe_precedente <- classe fintantque
Je ne suis pas spécialiste de PHP et encore moins de MySQL mais je pense que vous devriez pouvoir adapter ce code à vos besoins. N'hésiter pas à demander si quelque chose ne vous semble pas clair.
desc1988
Messages postés
9
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
17 mars 2008
1
10 mars 2008 à 22:02
10 mars 2008 à 22:02
J'essaye quelque chose mais cela ne marche pas. Pouvez vous m'indiquer et corriger mes erreurs si cela n'est pas trop vous demander.
Voila comment je procède mes pleins de trucs cloche:
$donnees = mysql_fetch_array($reponse)
$classeprecedente=NULL
if ($donnees['classe']!=$classeprecedente;$donnees['classe']==$classeprecedente)
{
?>
<p>
<caption>Classe: <?php echo $donnees['classe']; ?></caption>
<table>
<tr>
<th>Numero d'étudiant</th>
<th>Nom/Prenom</th>
<th>date d'absence</th>
<th>Justifié</th>
</tr>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
else
{
?>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
?>
Voila comment je procède mes pleins de trucs cloche:
$donnees = mysql_fetch_array($reponse)
$classeprecedente=NULL
if ($donnees['classe']!=$classeprecedente;$donnees['classe']==$classeprecedente)
{
?>
<p>
<caption>Classe: <?php echo $donnees['classe']; ?></caption>
<table>
<tr>
<th>Numero d'étudiant</th>
<th>Nom/Prenom</th>
<th>date d'absence</th>
<th>Justifié</th>
</tr>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
else
{
?>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
10 mars 2008 à 22:06
10 mars 2008 à 22:06
Il faudrait virer le "$donnees['classe']==$classeprecedente" du test if et ajouter "$classeprecedente=$donnees['classe']" après le else (à la fin de la boucle while).
Il faudrait aussi vérifier qu'on puisse faire des comparaisons de chaînes de caractère avec l'opérateur ==, je sais qu'on ne peut pas le faire en C, et comme le PHP en est proche, c'est à voir.
Il faudrait aussi vérifier qu'on puisse faire des comparaisons de chaînes de caractère avec l'opérateur ==, je sais qu'on ne peut pas le faire en C, et comme le PHP en est proche, c'est à voir.
desc1988
Messages postés
9
Date d'inscription
lundi 10 mars 2008
Statut
Membre
Dernière intervention
17 mars 2008
1
10 mars 2008 à 22:27
10 mars 2008 à 22:27
J'ai essayé autre chose mais ca ne marche toujours pas.
J'avoue que je galère pas mal.
Encore un petit coup de main ne serait pas de refus.
Voila ce que j'ai tenté de faire:
while ($donnees = mysql_fetch_array($reponse) )
{
$classeprecedente=$donnees['classe'];
if ($classeprecedente==NULL)
{
$classeprecedente=$donnees['classe']
?>
<p>
<caption>Classe: <?php echo $donnees['classe']; ?></caption>
<table>
<tr>
<th>Numero d'étudiant</th>
<th>Nom/Prenom</th>
<th>date d'absence</th>
<th>Justifié</th>
</tr>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
else
{
?>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
}
mysql_close(); // Déconnexion de MySQL
?>
Je ne sais pas si j'ai tout bien positionné (apparemment non puisque ça ne marche pas).
J'avoue que je galère pas mal.
Encore un petit coup de main ne serait pas de refus.
Voila ce que j'ai tenté de faire:
while ($donnees = mysql_fetch_array($reponse) )
{
$classeprecedente=$donnees['classe'];
if ($classeprecedente==NULL)
{
$classeprecedente=$donnees['classe']
?>
<p>
<caption>Classe: <?php echo $donnees['classe']; ?></caption>
<table>
<tr>
<th>Numero d'étudiant</th>
<th>Nom/Prenom</th>
<th>date d'absence</th>
<th>Justifié</th>
</tr>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
else
{
?>
<tr>
<td><?php echo $donnees['numero'] ?></td>
<td><?php echo $donnees['np'] ?></td>
<td><?php echo $donnees['date'] ?></td>
<td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td>
</tr>
</table>
</p>
<?php
}
}
mysql_close(); // Déconnexion de MySQL
?>
Je ne sais pas si j'ai tout bien positionné (apparemment non puisque ça ne marche pas).
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
10 mars 2008 à 22:48
10 mars 2008 à 22:48
Bah ouais mais si tu ne fais pas ce que je te dis, on va pas s'en sortir ^^ !
Essaie ça :
Essaie ça :
<?php $classeprecedente = 'truc' while ($donnees = mysql_fetch_array($reponse) ) { if ($donnes['classe'] != $classeprecedente) { ?> <p> <caption>Classe: <?php echo $donnees['classe']; ?></caption> <table> <tr> <th>Numero d'étudiant</th> <th>Nom/Prenom</th> <th>date d'absence</th> <th>Justifié</th> </tr> <tr> <td><?php echo $donnees['numero'] ?></td> <td><?php echo $donnees['np'] ?></td> <td><?php echo $donnees['date'] ?></td> <td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td> </tr> </table> </p> <?php } else { ?> <tr> <td><?php echo $donnees['numero'] ?></td> <td><?php echo $donnees['np'] ?></td> <td><?php echo $donnees['date'] ?></td> <td><?php if ($donnees['justif']==0 ){echo "non";} else{echo "oui";} ?></td> </tr> </table> </p> <?php } $classeprecedente=$donnees['classe']; } mysql_close(); // Déconnexion de MySQL ?>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
10 mars 2008 à 23:51
10 mars 2008 à 23:51
Bonsoir,
j'ai pas testé mais essayes comme ça:
Changes les noms des champs si besoin la ou il y a $donnees['......']
j'ai pas testé mais essayes comme ça:
Changes les noms des champs si besoin la ou il y a $donnees['......']
<?php mysql_connect("localhost", "root", ""); // Connexion à MySQL mysql_select_db("absences"); // Sélection de la base $reponse = mysql_query("SELECT * FROM absences"); //on va faire un array à 3 dimensions premiere dimension la classe, deuxieme le num de l'eleve, 3 ième l'élève $array_eleves=array(); while ($donnees = mysql_fetch_array($reponse)){ $array_eleves[$donnees['classe']][$donnees['numero']]=$donnees['eleve']; } mysql_close(); //on affiche: echo "<table border=\"1\">"; foreach($array_eleves as $classe=>$value){ echo "<tr><th colspan=\"2\">".$classe."</th></tr>"; foreach($value as $num=>$eleve){ echo "<tr><td>".$num."</td><td>".$eleve."</td></tr>" } } echo "</table>"; ?>
Bonjour,
Depuis quelques temps, si tout va bien pour mes fichiers personnels, Outlook Express, etc., par contre dès que je demande une page Web, mon ordinateur se bloque et dans le message d'erreurs, il est mentionné ce qui suit :
C:\DOCUME~1\VIP\LOCALS~1\Temp\WERee01.dir00\iexplore.exe.mdmp
C:\DOCUME~1\VIP\LOCALS~1\Temp\WERee01.dir00\appcompat.txt
Que puis-je faire pour remédier à cette situation ?
Bien merci à qui pourra m'aider.
J.P.
Depuis quelques temps, si tout va bien pour mes fichiers personnels, Outlook Express, etc., par contre dès que je demande une page Web, mon ordinateur se bloque et dans le message d'erreurs, il est mentionné ce qui suit :
C:\DOCUME~1\VIP\LOCALS~1\Temp\WERee01.dir00\iexplore.exe.mdmp
C:\DOCUME~1\VIP\LOCALS~1\Temp\WERee01.dir00\appcompat.txt
Que puis-je faire pour remédier à cette situation ?
Bien merci à qui pourra m'aider.
J.P.
11 mars 2008 à 19:21