TP 04: LES TABLEAUX
Objectifs
• Savoir lire, écrire dans un tableau
• Savoir utiliser les tableaux indicés et associatifs
• Connaître l’instruction foreach
• Savoir trier des éléments d’un tableau
Exercices
Exercice 1 : Parcours et tri de tableau
A l’aide de l’instruction ci après , remplissez le tableau $note.
Complétez ce tableau avec quelques notes.
Affichez le contenu du tableau non trié puis trié.
Exercice 2
Téléchargez le fichier “nomsEtudiants.txt” qui contient des noms d’étudiants et placez le avec vos programmes php.
a) Vous devezr écrire un programme qui affiche le contenu d’un tableau qui contiendra les noms d’étudiants.
Pour cela, vous allez alimenter un tableau nomé $noms à partir du fichier en incluant au début de votre script php les lignes de code suivantes:
b) Essayez par différentes méthodes de trier le tableau et d’afficher ensuite son contenu.
c) A l’aide d’un formulaire, saisissez un nom puis vérifiez s’il est absent du tableau. Si c’est le cas, insérez le dans le tableau sinon affichez un message d’erreur approprié.
d) Modifiez voter programme pour que le contenu du fichier soit remplacé par le contenu du tableau. Utilisez le script ci-dessous.
$note = array(7 , 20 , 14 , 11);
if (!$fp = fopen("nomsEtudiants.txt","r")) { echo "Echec de l'ouverture du fichier";
exit;
} else {
$i=0;
while(!feof($fp)) {
$Ligne = fgets($fp,255);
$noms[$i]=$Ligne;
$i++;
} }
fclose($fp); // On ferme le fichier
if (!$fp = fopen("nomsEtudiants.txt","w")) { echo "Echec de l'ouverture du fichier";
exit;
} else {
fseek ($fp, 0);
foreach($noms as $value) fputs($fp,$value);
fclose($fp); // On ferme le fichier }
Exercice 3 : tableau associatif et instruction « foreach »
A l’aide d’un formulaire, saisissez quelques noms d’étudiants et quelques notes.
Récupérez les informations saisies et alimentez un tableau associatif qui aura pour clé le nom d’étudiant et pour valeur sa note.
Parcourez à l’aide de l’instruction « foreach » le tableau ainsi rempli puis affichez le contenu du tableau ainsi que la note minimale, maximale et la moyenne
Exercice 4: Lexique d’expressions québécoises
Récupérez le fichier lexique.htm et renommez-le en .php.
Remplacez la liste des lettres de l'alphabet par un script qui génère l'alphabet à partir d'une fonction range.
La fonction range(valeur1, valeur2) renvoie un tableau avec des valeurs intermédiaires (entier ou lettres).
Ajoutez des liens pour qu'un clic sur une de ces lettres aboutisse à la 1ère définition de mot commençant par cette lettre. Vous devez pour cela placer les ancres nécessaires en html à l'aide de id="A", id="B", etc.
Améliorez la présentation à l'aide de css.
Exercice 5: Lister le contenu d’une base de données
A partir d’une table sous MySql (Table EMPLOYE), listez les noms d’employés et leur salaire.
Créez le programme php ci-dessous pour fournir les paramètres de connexion à votre base de données. Vous remplacerez les informations génériques ci-dessous par vos propres informations de connexion.
parametre.inc.php
<?php
/* Paramètres de connexion */
$host="sqletud.univ-mlv.fr";
$user="login";
$pwd="password";
$db="login_db";
?>
Créez le programme php ci-dessous pour permettre la connexion à votre base de données.
connexion.inc.php
<?php
/* Connexion au serveur et à la base de données */
include('parametre.inc.php') ;
mysql_connect($host,$user,$pwd) or die('Connexion impossible au serveur...');
mysql_select_db($db) or die('Connexion impossible à la base de données...');
?>
Créez le programme php ci-dessous pour permettre de lister les informations lues dans la base de données.
<?php
/* connexion à la base de données (a faire dès le début, en tout cas pas dans un formulaire, sinon message invisible) */
include('connexion.inc.php');
$requete= "SELECT nomEmploye , salaire FROM EMPLOYE ;";
$result=mysql_query($requete);
while($ligne=mysql_fetch_array($result))
echo $ligne['nomEmploye']." - ".$ligne['salaire']."<br />\n";
?>
Essayez maintenant d’écrire un programme affichant les salariés et leur lieu de travail.
Exercice 6: Utilisation de XAMPP
Effectuer le même travail que dans l’exercice précédent mais sur le serveur local.