Vous êtes sur la page 1sur 2

NF92 : accs une base de donnes et exemples.

Votre BDD est hberge sur le serveur tuxa.sme.utc et accessible. Nous prsentons trois faons de ladministrer : en mode
terminal en langage SQL, puis via le serveur apache travers une interface PhpMyAdmin et enfin via le serveur apache en
utilisant PHP.
Exercice 1 : Accs en mode terminal une base de donnes
Ouvrez un terminal, puis connectez-vous au serveur l'aide de la commande : ssh X nf92SXXX@tuxa.sme.utc
Ensuite, vous pouvez accder votre BDD en tapant la commande :
mysql u nf92SXXX -p
Votre BDD a dj t cre pour vous. Elle sappelle nf92SXXX.
Une fois connect, testez les commandes : help ; , status ; , use nf92SXXX; , show tables ;.
Exercice 2 : Administration en mode terminal dune base de donnes
Pour le moment, votre BDD est vide. Une BDD se compose de tables. Nous allons crer une premire table appele etudiants
(sans accent). Elle comportera les colonnes suivantes : idetu, nom, prenom, semestre, mail. De quel type doivent
tre ces colonnes ? Quelles contraintes doivent-elles respecter ?
Pour crer cette table, saisissez directement dans mysql :
USE nf92SXXX;
CREATE TABLE etudiants (idetu INT not null AUTO_INCREMENT, nom VARCHAR (25) not null, prenom
VARCHAR (25) not null , semestre VARCHAR (10) not null , mail VARCHAR (30) not null , PRIMARY
KEY (idetu));

Visualisez la table avec la commande show tables ;


Exercice 3 : Insertion en mode terminal dans une BDD
Toujours dans mysql, avec la commande insert, on peut ajouter des lignes aux tableaux. Essayez les commandes suivantes :
insert into etudiants values (null, "Blanche", "Neige") ;
insert into etudiants values (null, "Blanche", "Neige", "TC3") ;
insert into etudiants values (null, "Blanche", "Neige", "TC3","foret@profonde") ;

Laquelle de ces commandes marche et pourquoi ? Qu'est devenu le champ idetu ? Visualisez le contenu de la table avec la
commande SQL :
SELECT * FROM etudiants;
Exercice 4 : Administration dune base de donnes via une interface web
Votre BDD est accessible par le net via le serveur apache. Pour se connecter allez sur http://tuxa.sme.utc/pma avec un navigateur
et tapez votre login et mot de passe. Linterface sappelle PhpMyAdmin. Elle permet dadministrer votre base de donnes sans
connatre les commandes sql.
Visualisez la structure et le contenu de la table etudiants.
Ajoutez dans la table les personnes suivantes : Grincheux, Atchoum, Timide. Inventez les donnes manquantes.
Modifiez la structure de la table pour quelle contienne galement la date de naissance de chaque tudiant, cette information n'est
pas obligatoire. De quel type doit tre cette information ?
Ajoutez une date de naissance pour chacun et visualisez la table dans phpMyAdmin. Visualisez galement son contenu en mode
terminal (avec mysql).
Exercice 5 : Accs une base de donnes via le serveur apache en utilisant PHP
Vous pouvez galement accder votre BDD travers le serveur apache laide dune page (html+php). Le code suivant vous
permet de vous connecter et de vous dconnecter de votre BDD. Noubliez pas de mettre votre login et votre mot de passe.
<?php
$dbhost = 'tuxa.sme.utc';
$dbuser = 'nf92XXX'; // remplacer les XXX avec le semestre et le numero de votre compte
// exemples nf92p014 ou nf92a078
$dbpass = 'votremotdepasse'; // remplacer votremotdepasse par votre mot de passe
$dbname = 'nf92XXX'; // remplacer les XXX comme indiqu ci-desus
$connect = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname) or die ('Error connecting to
mysql');
// vos commandes au serveur de BDD sont ajouter ici
mysqli_close($connect);
?>

Donnez la signification de chaque ligne de ce programme. Crez une page db_ins.php et insrez le code ci-dessus. Ajoutez un
lien vers cette page au menu et visualisez la page. Si cela fonctionne, vous ne verrez rien car vous n'avez encore pas soumis de
commandes sinon vous aurez des erreurs.
Ajouter db_ins.php aprs la connection la BDD et avant mysqli_close le code suivant :
$query = 'SELECT * WHERE 1=1'; // une chaine de caractere nommee $query
echo "<br>".$query."<br>";
// TOUJOURS afficher la commande SQL contruite
// quand vous mettez au point vos codes
$result = mysqli_query($connect, $query); // $query utilise comme parametre de mysqli_query
if (!$result) {
die('Requte invalide : ' . mysqli_error($connect));
}

Testez.
Que se passe-t-il ? Mettez en place un protocole de vrification et corrigez. Que fait la fonction mysqli_query ?
Exercice 6 : Insertion dans une BDD avec un code PHP :
Pour excuter une commande SQL depuis PHP, il suffit donc de construire une chane de caractres correspondant une requte
SQL valide et de l'utiliser comme paramtre de la fonction mysqli_query(). Donnez le code php du fichier
etu_insertion_BDD.php qui ajoute monsieur Balthazar Simplet TC10 n le 1 avril 1920 dans votre table etudiants. Si
vous excutez le code plusieurs fois, que ce passe-t-il ? Visualisez le contenu de la table.
Exercice 7 : Visualisation simple du contenu de la BDD avec un code PHP :
Crez la page etu_consult_BDD.php. Ajoutez y le code pour la connexion et la dconnexion de la BDD puis le code suivant
(au bon endroit) qui vous permet de visualiser le contenu de votre table :
$query = "SELECT * from etudiants"; // quest $query a ce stade pour php ?
$result = mysqli_query($connect, $query);
if (!$result) {
echo 'Impossible d\'excuter la requte : ' . mysqli_error($connect);
exit; }
$row = mysqli_fetch_row($result);
echo <br> cela donne .$row[0]. et .$row[1];
$row = mysqli_fetch_row($result);
echo <br> et puis .$row[0]. et .$row[1]. .$row[3];

Testez-le et visualisez le rsultat dans votre navigateur. A quoi correspond les variables $query et $result ? Commentez
chaque ligne de ce code.
Comment modifier le code pour affichez non seulement les colonnes 0 et 1 de la premire ligne mais toutes les colonnes et toutes
les lignes, tant quil y en a ? Pour cela cherchez de laide sur internet.
Exercice 8 : Cration d'un formulaire pour l'insertion dans la BDD
Crez le fichier etu_insertion_form.html qui contient le formulaire de saisie d'un nouvel tudiant (avec les champs pour
nom, prnom, semestre, mail). Modifiez le fichier etu_insertion_BD.php pour qu'il lise les valeurs saisies dans le
formulaire, gnre ensuite une chane de caractres $query qui correspond une insertion dans la base et l'affiche dans la page
rsultat. Vrifiez la syntaxe : un copier/coller de ce qui apparat dans la page peut tre excut comme commande SQL. Quand
votre syntaxe est correcte elle insre un nouvel tudiant dans la BDD. Ajoutez le lien vers etu_insertion_form.html au
menu de votre site.
Pour vous aider, vous pouvez former la requte en vous inspirant du code suivant qui est incomplet :
$a=$_POST["a"] ; // identifier clairement quoi correspond "a" et $a
$b=$_POST["b"] ; // idem
$query="insert into etus values ('".$a."','".$b."' )";
// quest $query a ce stade pour php ?
echo "<br>".$query."<br>"; /* pourquoi faire cet echo ? */
// pourquoi avoir mis la commande mysqli_query dans un commentaire ?
// $return=mysqli_query($connect, $query);

Vous pouvez refaire tout cela chez vous. Les outils sont easyphp ou wamp. Gratuit et bien.