Вы находитесь на странице: 1из 2

NF92 TP

Site d'auto-cole : sance 2

Finalisation du module d'enregistrement des lves dans une BDD


L'objectif est de finaliser les codes de ajout_eleve.html et ajouter_eleve.php et aussi de
ajout_theme.html et ajouter_theme.html. Nous allons enregistrer les donnes dans une base de
donnes plutt que dans des fichiers.
tape 1 : apprendre utiliser l'interface web phpMyAdmin la base de donnes relationnelle
La base de donnes que vous devez utiliser est dj cre et accessible sur http://tuxa.sme.utc/pma
(avec votre login et mot de passe). Connectez-vous.
Une fois connect, cliquez sur nf92xxxx (votre base de donnes) dans la colonne de gauche.
Examinez avec votre charg de TP le menu de gauche. Prenez des notes sur les icones Accueil,
Quitter et Fentre de requte. A quoi peut servir Fentre de requte ?
Avec votre charg de TP, crez une nouvelle table dans votre base en cliquant sur Nouvelle table.
Cette premire table sappellera eleves et n'aura qu'une colonne appele nom de type varchar(30).
Aprs avoir cliqu sur Sauvegarder, cliquez sur eleves dans la colonne de gauche.
Examinez avec votre charg de TP les onglets Afficher, Structure et Insrer.
La table eleves est cre mais vide. Pour la remplir, cliquez sur Insrer, tapez quelque chose dans la
case valeur (ex : Simplet) puis cliquez sur Excuter. Commentez le message qui s'affiche.
A quoi correspond INSERT INTO `nf92a121`.`eleves` (`nom`) VALUES ('Simplet'); ?
Cliquez sur Afficher pour voir le contenu de la table eleves. Vous venez de crer une table dans une
base de donnes MySQL l'aide de l'outil phpMyAdmin, puis vous avez ajout des donnes dans
la table. Enfin vous les avez visualises.
tape 2 :
Au lieu d'utiliser l'outil web phpMyAdmin pour manipuler la base de donnes, vous allez maintenant
la manipuler directement depuis votre code php ajouter_eleve.php.
Pour commencer, vous allez ajouter un autre lve la table eleves depuis votre page de rcapitulatif
de saisie ajouter_eleve.php.
Commentez le code test au TP prcdent (criture dans le fichier data.txt), car il ne servira plus
dsormais.
Insrez le code suivant :
date_default_timezone_set('Europe/Paris');
$date=date("Ymd");
$dbhost='tuxa.sme.utc';
$dbuser='nf92XXX';//remplacerlesXXXaveclesemestreetlenumerodevotrecompte
//exemplesnf92p014ounf92a078
$dbpass='votremotdepasse';//remplacervotremotdepasseparvotremotdepasse
$dbname='nf92XXX';//remplacerlesXXXcommeindiqucidesus
$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname) or die ('Error connecting to
mysql');
$nom=$_POST['nom'];//aconditionque'nom'soitlebonlabel!expliquez.
$query="insertintoelevesvalues($nom)";//Estcequecelafonctionne?
//$query="insertintoelevesvalues(NULL,'Blanche','Neige','18000101',"."'$date'".")";
echo"<br>$query<br>";
$result=mysqli_query($connect,$query);//$queryutilisecommeparametredemysqli_query
if(!$result){echo"<br>pasbon".mysqli_error($connect);}
mysqli_close($connect);

Commentez ce code avec votre charg de TP et testez-le. Pourquoi faire un echo"<br>$query<br>";


Puis vrifiez avec phpMyAdmin que le nom saisi est bien insr dans la table eleves.

Remplacez cette premire requte par celle qui est en commentaire :


$query="insertintoelevesvalues(NULL,'Blanche','Neige','18000101',"."'$date'".")";

Cela ne fonctionne pas pourquoi ? Commentez avec votre charg de TP l'erreur retourne par mysql.
Puis copier/coller ce qui s'affiche avec le :
echo"<br>$query<br>";

dans Fentre de requte et exccutez la commande en langage SQL. Commentez avec votre charg
de TP.
Comment garantir qu'un lve est diffrent d'un autre mme si ses caractristiques nom, prnom,
date de naissance sont identiques ? Quels attributs supplmentaires sont ncessaires dans la table ?
Quelles doivent tre leurs caractristiques ?
Modifiez maintenant la table eleves telle que les attributs soient exactement et dans l'ordre :
1. ideleve : int autoincrement
2. nom : varchar(30)
3. prenom : varchar(30)
4. dateNaiss : date
5. dateInscription : date
Testez nouveau.
tape 3 :

Stabilisation de la saisie d'un nouvel lve.

Modifiez le code de ajouter_eleve.php pour rcuprer proprement toutes les donnes saisies dans
ajout_eleve.html puis enregistrer votre lve dans la nouvelle version de la table eleves de la BDD.
Pour cela :

1.
2.
3.
4.
5.

affichez le rcapitulatif de la saisie (obligatoire pour pouvoir vrifier)


gnrez une chane de caractres qui contiendra la requte SQL.
affichez cette chane de caractres dans la page
vrifiez sur un exemple de saisie d'lve que la chane de caractres correspondant votre
requte SQL est correcte.
Pour cela copiez/collez la requte affiche dans la page dans la partie de phpMyAdmin qui
permet de taper directement une requte SQL (onglet SQL ). Si votre chane de caractres
est correcte l'insertion se fera sans problme. Sinon la syntaxe SQL est errone : vous devez
corriger la construction de la chane de caractres.

Stabilisez vos codes ajout_eleve.html et ajouter_eleve.php


Une personne qui saisit peut faire des erreurs ou ne pas remplir un des champs. Comment grer ces
situations ? Quelles sont les vrifications faire avant de crer la requte SQL ? Est-ce utile de le faire
maintenant ? Pourquoi ? Faut-il oublier ce travail faire ?

Finalisation du module d'enregistrement des thmes dans une BDD


Crez la table themes telle que les attributs soient exactement et dans l'ordre :
1. idtheme : int autoincrement
2. nom : varchar(30)
3. supprime : boolean
4. descriptif : text
Pourquoi avoir un attribut supprime de type boolean ? A quoi correspond le type boolean ?
Stabilisez vos codes ajout_theme.html et ajouter_theme.php
Ce sont peu prs les mmes !

Вам также может понравиться