Interrogation écrite (11/05/2013) :
Soit un classeur de type Excel (version 12.0) contenant les 2 feuilles (tables) suivantes:
- Table Etudiant : Feuil1 (mat Numérique, nom Texte, section Numérique)
- Table Notes: Feuil2 (codem Numérique, note Decimal , mat Numérique)
Ce classeur est accessible via la source ODBC nommée scol.
1. Donner le script pour :
- Créer la table Moyenne avec MySQL qui contiendra la moyenne de chaque étudiant;
- Calculer les moyennes des étudiants à partir du classeur excel en enregistrant les résultats dans la table Moyenne;
- Afficher ces moyennes par ordre décroissant.
Solution : |
<?php mysql_query("drop database `bdd`",$s); mysql_select_db ("bdd" , $s ) or die ( "erreur bdd" ); mysql_query("drop table `moyenne`",$s); $c = odbc_connect ( "scol" ,"" ,"" ) or die ( "erreur de source de donné" ); $req="select `Feuil1$`.`mat`, `Feuil1$`.`nom`, avg(`note`) as `moyc` while (odbc_fetch_row($R)) { $req= "insert into `moyenne` ( `mat` , `nom` , `moy` ) values ('$n','$p','$m')"; |
2. Nous voulons améliorer le calcul de la moyenne en ajoutant dans le classeur excel le coefficient de chaque module pour le calcul de la moyenne :
- Table Etudiant : Feuil1 (mat Numérique, nom Texte, section Numérique)
- Table Notes: Feuil2 (codem Numérique, coef Numérique, note Decimal , matri Numérique)
Re-donner le script ci-dessus en n'affichant que les étudiants ayant une moyenne supérieure ou égale à 10.
Solution : |
<?php mysql_query("drop database `scol`",$c); mysql_select_db("scol",$c)or die(mysql_error()); mysql_query("drop table `moyenne`",$c); $p=odbc_connect ( "scol","","" ) or die ("erreur connexion odbc"); $f="select `mat`,`nom`, sum(`note`*`coef`) / sum(`coef`) as `moy` while ( odbc_fetch_row ( $res ) ) { mysql_query( "insert into `moyenne` ( `mat` ,`nom`,`moy` ) values ('$m' ,'$n' ,'$y')", $c) |