Afichage en php

keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023 - Modifié le 6 sept. 2018 à 13:11
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023 - 7 sept. 2018 à 12:24
Bonjour,
j'ai un sérieux problème avec l'affichage d'un bulletin scolaire que je voudrais afficher.
j'ai deux tables une table nommée listeleve dans laquelle je mets les informations sur l'élève et l'autre nommée frang dans laquelle je mets les moyennes et le rang dans chaque matière.

Les données ne s'affichent pas quand je veux afficher les bulletins de tous les élèves dans une classe donnée.
s'il y a dix matières dans la table frang
dix foix l'élève s'affiche.
quand je veux resoudre le problème avec " group by" cette fois c'est une matière qui s'affiche.
ce que je voudrais c'est qu'un élève avec ses informations s'affiche avec ses matères en dessous et ainsi de suite.

j'ai tout essayé depuis une semaine environ.cela ne passe.
voici le code:
<?php
include("configu.php");
?>

<?php


function classement(){

$results = array();
$sql = 'SELECT DISTINCT listeleve.nomre,listeleve.prenomsre,listeleve.classere,listeleve.matricule,
listeleve.avatarre,
frang.matricule,frang.moyenne,
frang.matiere,frang.rang,frang.professeur from
listeleve,frang where
frang.matricule = listeleve.matricule AND
listeleve.classere = "'.$_GET['classe'].'"
order by nomre,prenomsre
';
$query = mysql_query($sql) or die("error");
while($row = mysql_fetch_assoc($query)){
$results[] = $row;
}
return $results;
}

?>
<?php
$classements = classement();
foreach($classements as $classement){
?>

<?php
echo '

<h3>Nom:'.$classement["nomre"].'---



<br> Prénoms:'.$classement['prenomsre'].'



<hr/>MATIERE:'.$classement['matiere'].'---MOYENNE:'.$classement['matiere'].'---
rang:'.$classement['matiere'].'';

}


mysql_close(); ?>


merci infiniment

4 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
6 sept. 2018 à 14:12
Bonjour,

Déjà... comme je te l'ai déjà indiqué dans une précédente question :l'extension mysql est obsolète.
Il faut passer à PDO ou mysqli
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

Ensuite, pour poster ton code sur le forum, merci de le faire en y précisant le LANGAGE afin d'avoir la coloration syntaxique et l'indentation. Là c'est illisible !
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Et ensuite.....
Dans ta requête... ne pas mettre de DISTINCT ni de GROUP BY.
Puis, retravailler l'ARRAY que tu retournes...
Un truc du genre :
while($row = mysql_fetch_assoc($query)){
  $results[$row['matricule']]['nom'] = $row['nomre'];
  $results[$row['matricule']]['prenomsre'] = $row['prenomsre'];
  $results[$row['matricule']]['classere'] = $row['classere'];
  $results[$row['matricule']]['matiere'][$row['matiere']] = array('moyenne'=>$row['moyenne']
  ,'rang'=>$row['rang']
  ,'professeur'=>$row['professeur']);
  }


Une fois fait, fais donc un
echo "<pre>";
print_r($classements);
echo "</pre>";

et regarde ce que ça te donne...
Tu verras que tu as un array à plusieurs dimensions.. et que tu pourras parcourir sans trop de soucis... (avec une seconde boucle à l'intérieur pour les matières )


0
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023
6 sept. 2018 à 14:42
merci jordan45.j'essaie et je reviens
0
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023
6 sept. 2018 à 15:13
il m'affiche un truc de ce genre:
Array
(
[125458] => Array
(
[nomre] => keunene
[prenomsre] => Koffi marc
[classere] => RIT
[matererma] => Array
(
[réseaux] => Array
(
[moyrma] => 14
[rang] => 2ème
[professeur] => KOUASSI KONAN RICHARD
)

[LEXICOLOGIE] => Array
(
[moyrma] => 11.5
[rang] => 2ème
[professeur] => KOUASSI KONAN RICHARD
)

)

)

[125459] => Array
(
[nomre] => keunene
[prenomsre] => Koffi marc
[classere] => RIT
[matriec] => 125458
[avatarre] => images/15352931504.jpg
[matrma] => 125458
[ranrma] => 2ème
[moyrma] => 14
[matererma] => réseaux
[professeur] => KOUASSI KONAN RICHARD
)

[125460] => Array
(
[nomre] => keunene
[prenomsre] => Koffi marc
[classere] => RIT
[matriec] => 125458
[avatarre] => images/15352931504.jpg
[matrma] => 125458
[ranrma] => 2ème
[moyrma] => 11.5
[matererma] => LEXICOLOGIE
[professeur] => KOUASSI KONAN RICHARD
)

[478856] => Array
(
[nomre] => Séry
[prenomsre] => gnoléba
[classere] => RIT
[matererma] => Array
(
[réseaux] => Array
(
[moyrma] => 20
[rang] => 1er
[professeur] => KOUASSI KONAN RICHARD
)

[LEXICOLOGIE] => Array
(
[moyrma] => 12.5
[rang] => 1er
[professeur] => KOUASSI KONAN RICHARD
)

)

)

[478857] => Array
(
[nomre] => Séry
[prenomsre] => gnoléba
[classere] => RIT
[matriec] => 478856
[avatarre] => images/15352935762.jpg
[matrma] => 478856
[ranrma] => 1er
[moyrma] => 20
[matererma] => réseaux
[professeur] => KOUASSI KONAN RICHARD
)

[478858] => Array
(
[nomre] => Séry
[prenomsre] => gnoléba
[classere] => RIT
[matriec] => 478856
[avatarre] => images/15352935762.jpg
[matrma] => 478856
[ranrma] => 1er
[moyrma] => 12.5
[matererma] => LEXICOLOGIE
[professeur] => KOUASSI KONAN RICHARD
)

)
Array
(
[125458] => Array
(
[nomre] => keunene
[prenomsre] => Koffi marc
[classere] => RIT
[matererma] => Array
(
[réseaux] => Array
(
[moyrma] => 14
[rang] => 2ème
[professeur] => KOUASSI KONAN RICHARD
)

[LEXICOLOGIE] => Array
(
[moyrma] => 11.5
[rang] => 2ème
[professeur] => KOUASSI KONAN RICHARD
)

)

)

[125459] => Array
(
[nomre] => keunene
[prenomsre] => Koffi marc
[classere] => RIT
[matriec] => 125458
[avatarre] => images/15352931504.jpg
[matrma] => 125458
[ranrma] => 2ème
[moyrma] => 14
[matererma] => réseaux
[professeur] => KOUASSI KONAN RICHARD
)

[125460] => Array
(
[nomre] => keunene
[prenomsre] => Koffi marc
[classere] => RIT
[matriec] => 125458
[avatarre] => images/15352931504.jpg
[matrma] => 125458
[ranrma] => 2ème
[moyrma] => 11.5
[matererma] => LEXICOLOGIE
[professeur] => KOUASSI KONAN RICHARD
)

[478856] => Array
(
[nomre] => Séry
[prenomsre] => gnoléba
[classere] => RIT
[matererma] => Array
(
[réseaux] => Array
(
[moyrma] => 20
[rang] => 1er
[professeur] => KOUASSI KONAN RICHARD
)

[LEXICOLOGIE] => Array
(
[moyrma] => 12.5
[rang] => 1er
[professeur] => KOUASSI KONAN RICHARD
)

)

)
comment enlever les array?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié le 7 sept. 2018 à 12:29
faut pas enlever les array .........
Tu ne dois pas utiliser le print pour faire ton affichage... ça te permet juste de voir ce que contient ta variable.!

Maintenant que tu sais ce qu'elle contient... à toi de faire les boucles pour afficher les données qui te serviront.
Regarde maintenant ce que te donne
foreach($classements as $mat=>$R){
  echo "<br>Matricule :" .$mat;
  echo "<br> Nom " . $R['nomre'];
  echo "<br> classere : ".$R['classere'];
  echo " <br> MATIERES <br>";
  foreach($R['matiere'] as $M){
   print_r($M); // a changer c'est juste pour l'exemple
  }
}
0
keunene Messages postés 72 Date d'inscription samedi 5 avril 2014 Statut Membre Dernière intervention 10 mars 2023
Modifié le 7 sept. 2018 à 12:24
MERCI infiniment pour ta disponibilité.je vais le faire
0
Rejoignez-nous