Examen PHP-MySQL - Espace d'authentification univ-brest.fr

4.2 PHP et MySQL : Principe de base du fonctionnement. 4.3 PHP et HTML. 5. ...
une interface de programmation pour écrire des applications (orientées Web ou
non). MySQL n=a pas les ...... à voir avec Michel. Corrigé du dernier exercice :.

Part of the document


|Examen PHP-MySQL |2h | |
|Sans document | |11 avril 2008 |
Exercice :
L'objectif de cet exercice est d'écrire un programme PHP permettant de
remplir les cases d'un tableau $tab par les éléments d'une matrice M de
dimension N telle que M( i, j ) = 1 / ( i × j ) et d'afficher ce tableau
PHP via un navigateur web sous forme d'un tableau :
1- Ecrire une fonction permettant de "remplir" le tableau $tab par une
matrice de dimension N.
2- Donner le code permettant de saisir via un formulaire la valeur de N
(dimension de la matrice à construire).
3- Ecrire le code appelant la fonction, puis afficher les données
récupérées par la fonction sous forme d'un tableau HTML.
Problème :
L'objectif est le calcul de moyenne de notes saisies dans une base. Il vous
est demandé : 1- De donner un code PHP permettant de créer une base «DEUST ».
2- D'écrire une fonction dans un fichier connexion.inc.php (qui servira
dans la suite de l'exercice) pour vous connecter au serveur MySQL, et
de choisir une base Les paramètres de la fonction seront au nombre de
4 (nom de la base, nom du serveur, login et mot de passe). 3- De créer une table « note » dans la base « DEUST » toujours en PHP,
comportant 7 champs :
a. Un indice auto incrémenté,
b. Le nom de l'étudiant,
c. son prénom,
d. son adresse,
e. La note PHP,
f. La note HTML
g. La moyenne des notes
Vous réfléchirez aux types de données à utiliser pour chacun des
champs et aux conditions à respecter (pas de doublon de couple nom
prénom) et vous prendrez comme clé primaire l'indice. Vous n'oublierez
pas de vous connecter au serveur MySQL (fonction écrite question 2).
4- D'écrire le code permettant d'alimenter la base, pour cela vous
utiliserez un formulaire que vous insérerez dans une boucle (pour
simplifier le problème on considérera qu'il y a 12 étudiants). 5- D'écrire alors le code PHP permettant d'afficher les notes obtenues
par chaque étudiant puis calculer la moyenne obtenue par chaque
étudiant dans la table note et l'afficher dans le même tableau.
Enregistrer cette moyenne dans le champ moyenne de la table note 6- De calculer la moyenne des moyennes du groupe d'étudiant en PHP.
7-
Rappel : CREATE DATABASE 'nom_base' ;
< $idcom =mysql_connect (string $host, string $user, string $pass)
. $host : nom du serveur défini par l'hébergeur, il s'agit souvent
de la chaîne localhost
. $user : nom sous lequel l'utilisateur est autorisé à accéder au
serveur
. $pass : mot de passe associé à l'utilisateur
. Si la connexion n'est pas établit, cette fonction retourne FALSE
. < Sélection d'une base : $idbase=@mysql_select_db($base);
. CREATE TABLE `note` (`indice` TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY
,`nom` VARCHAR( 10 ) NOT NULL , `prenom` ....); Insertion de données :
INSERT INTO `etudiant` ( `id_etu` , `nom` , `prenom` , `date_naissance` ,
`adresse` , `ville` , `mail` , `moyenne1` ) VALUES (NULL , 'lagaffe',
'gaston', '1950', 'chez franklin', 'paris', NULL , '0');
< Lecture du résultat d'une requête $requete
$result=@mysql_query($requete,$idcom); < Méthode 2
. récupération du nombre de colonnes et de lignes:
int mysql_num_fields($result)
int mysql_num_rows ($result)
. récupération des intitulés des champs de la table :
string mysql_field_name ($result, int field_index)
. récupération du contenu d'une ligne:
array mysql_fetch_row ($result) < libération de l'espace mémoire occupé si plus besoin des données:
int mysql_free_result (resource result_identifier) Instruction de sélection :
< toutes les lignes :
SELECT * FROM `etudiant`
< des villes :
SELECT ville FROM `etudiant`
< affichage des villes sans doublon :
SELECT DISTINCT ville FROM `etudiant`
< affichage des villes sans doublon et ordonnées (ASC croissant ou DESC
décroissant):
SELECT DISTINCT ville FROM `etudiant` ORDER BY ville ASC
< des id_etu, nom, prenom :
SELECT id_etu,nom,prenom FROM `etudiant`
< restrition du nombre de ligne
SELECT nom,prenom FROM etudiant WHERE `date_naissance`>1970
< Forme générale :
SELECT col1,col3, ... FROM table WHERE condition Modification de données dans la base
< Utilisation de l'instruction UPDATE:
UPDATE `table` SET `champ` = 'valeur' WHERE condition
< Les boucles for
< Le langage : Les formulaires
Exemple :



. Action : URL cible
. Method : dans la pratique GET ou POST
< Rappel en html :
. Boutons d'action



. Entrées textuelles



. Boites de saisie
texte... < L'action du formulaire est redirigé vers un script qui peut être le
fichier formulaire lui-même. Dans ce cas, on peut spécifier le
paramètre action comme suit : action=""
< Récupération des données saisies : lorsque l'utilisateur clique sur le
bouton envoi, une requête HTTP est envoyée au serveur vers le script
action,cette requête contient toutes les association entre les noms,
les champs et leur valeur. Cette requête se trouve dans l'entête HTTP
si la méthode POST est utilisée, ou dans l'URL si il s'agit de la
méthode GET.
< Depuis PHP 4.1, ces valeurs sont contenues sur le serveur dans des
tableaux associatifs dits superglobaux $_POST ou $_GET. Les clés de
ces tableaux sont les noms associés aux champs par l'attribue name.
<