Exercices PHP
Chapitre 1. Prise en main
Chapitre 2. Les formulaires
Chapitre 3. Accès au système de fichiers
Chapitre 4. Accès aux bases de données
Chapitre 5. Génération dynamique d'images
Chapitre 6. Variables de sessions
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

Chapitre 4. Accès aux bases de données

Objet du TP : Ce TP va permettre de voir les mécanismes nécessaires à la connexion à un SBGD de type MySQL (pour un autre SGBD, il faudra implement adapter les noms de fonctions).

Vous crééerez sur votre compte mySQL une table agenda avec les informations suivantes :
Nom (50 car. Max), Prénom (50 car. Max), adresse (255 car. Max), age (entier), téléphone (10 car. Max).

Vous remplirez cette table avec 4 à 5 enregistrements.

Une fois ceci réalisé, vous proposerez une page permettant d’interroger la base, pour obtenir
- un classement par noms,
- un classement par age,
- la moyenne d’âge des personnes.

Solution

.SQL

CREATE TABLE agenda (nom char(50), prenom char(50), adresse char(255), age integer);

INSERT INTO agenda VALUES('Roose','Philippe','Quartier Herauritz',30);

INSERT INTO agenda VALUES('Dalmau','Marc','Labastide',44);
INSERT INTO agenda VALUES('Filbet','Mitch','Anglet',43);

.HTML

<html>
<head>
<title>Agenda</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form ENCTYPE="multipart/form-data" action="agenda.php" METHOD="POST">
<select name="tri">
<option value="Nom">Classement par noms</option>
<option value="Prenom">Classement par prénoms</option>
<option value="Age">Moyenne d'age</option>
<option value="Age">Moyenne d'age</option>
</select>
<input type="submit" value="Exécuter">
</form>

</body>
</html>

.PHP

$bdd= "roose"; // Base de données
$host= "iparla"; // Hote (localhost en principe)
$user= "roose"; // Utilisateur
$pass= "drop64"; // mp

$nomtable= "agenda";

// Connection bdd
// --------------
print "Tentative de connexion $host - $bdd <br>";
@mysql_connect($host,$user,$pass) or die( "Impossible de se connecter à la base de données");
print "Connexion réussie, sélection de base<br>";
@mysql_select_db($bdd);
print "Sélection de base OK<br>";


$choix=$_POST['tri'];
if ($choix == "Nom") {
print "<br>Classement par Noms";
$query = "SELECT * FROM $nomtable ORDER BY nom ";
}

if ($choix == "Prenom") {
print "<br>Classement par Prénoms";
$query = "SELECT * FROM $nomtable ORDER BY prenom ";
}

if ($choix == "Age") {
print "<br>Moyenne d'Age";
$query = "SELECT * FROM $nomtable";
}


$result= MYSQL_QUERY($query);

if (mysql_error()){ // Erreur base de donnees, surement la table qu'il faut creer
// print "Erreur dans la base de données : ".mysql_error();
exit();
}
else {
// print "Bien connecté....<br>";
}


if ($choix!="Age") {
while($tuple=mysql_fetch_row($result)) {
print "<br>";
print "Nom : $tuple[0] <br>";
print "Prenom : $tuple[1]<br>";
print "Adresse : $tuple[2]<br><hr>";
print "Age : $tuple[3]<br><hr>";

}

} else {
settype($moyenne,"integer");
settype($i,"integer");
$moyenne=0;
$i=0;
while($tuple=mysql_fetch_row($result)) {
$moyenne=$moyenne+$tuple[3];
$i++;
}
$moyenne = $moyenne / $i;
print "<Br>La moyenne d'age est de $moyenne ans<br>";
}
/* Fermeture */
MYSQL_CLOSE();

 

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante