Passer au contenu

Un site Web dynamique avec Apache, PHP, MySQL

En s’appuyant sur les Open Source Solutions (logiciels disponibles gratuitement sur le Net), il est possible de proposer aux internautes qui viennent sur votre site de laisser leurs coordonnées dans un annuaire.

Le mois dernier, nous avons vu comment télécharger et installer les trois principaux logiciels en Open Source que sont Apache, PHP et MySQL. Grâce à eux, nous allons maintenant réaliser un annuaire destiné aux internautes qui viennent visiter votre site. Ces derniers pourront y laisser leurs coordonnées tout en le consultant.

1) Créez la table dans MySQL

Vérifiez que tout les serveurs sont bien lancés (Apache, MySQL). Lancez PHPMyAdmin en appelant la page ” http://localhost/phpMyAdmin/index.php3“. Créez une nouvelle base de données “Annuaire” et positionnez vous à cet endroit. Appelez le fichier “annuaire.sql” que vous aurez préalablement saisi dans un éditeur de texte. Exécutez la requête SQL de façon à créer la table. PHPMyAdmin vous confirme alors la création de la table ainsi que l’insertion des valeurs de votre jeu de test. Essayez la création de la table et l’ajout des valeurs en exécutant la requête “SELECT * FROM annuaire”. Trois enregistrements doivent apparaître. Vous pouvez aussi réaliser la même action en cliquant sur le lien “Afficher”.

2) Factorisez le code

Un certain nombre de lignes de code sont redondantes. Vous allez donc factoriser ces parties en ayant recours à une approche par “composant”. Cela vous permettra de faire évoluer plus facilement votre application sans avoir à retoucher chaque page l’une après l’autre. Les trois parties redondantes sont l’en-tête et le pied de page ainsi que les paramètres de connexion à la base MySQL.

3) Interdisez l’affichage des messages d’erreur

Head.inc ne comporte aucune ligne de code. De son côté, foot.inc contient une ligne qui ferme systématiquement la connexion à la base de données ; il s’agit d’une approche très pratique si vous craignez les oublis. Cependant, l’instruction “mysql_close()” risque de retourner un message d’erreur si le fichier est inclus dans une page ne comportant pas de connexion ouverte. Pour cette raison, il est préférable d’ajouter le caractère “@” devant cette instruction car il permet d’interdire l’affichage des messages d’erreur.

4) Code de la connexion : créez le une fois seulement

Stockez les paramètres de connexion dans un fichier “connect.inc”. L’instruction “mysql_connect()” précise le nom du serveur ainsi que le nom d’utilisateur que vous allez employer pour que l’application se connecte à la base. L’instruction “mysql_select_db()” précise la table sur laquelle vous souhaitez travailler.

5) Incluez les “composants”

Tous les fichiers de la mise en ?”uvre commencent et finissent systématiquement par les lignes “include(“head .inc”);” et “include(“foot.inc”);”. Vous pouvez cascader l’utilisation des includes, c’est-à-dire en inclure un dans un composant. Mais il faudra dans ce cas que le composant comporte une extension “.php” pour qu’il soit correctement analysé par le serveur d’application.

6) Ajoutez un membre

Maintenant que le composant “connect.inc” est créé et inclus dans la page “saisie.php”, vous devez ajouter les données dans la base MySQL au moyen d’une requête SQL standard. Stockez cette requête dans une variable “$query” afin de conserver une bonne lisibilité du code et de faciliter la mise à jour de l’application. Dans notre cas, PHP récupére les variables passées par le formulaire sans aucune manipulation. Il suffit simplement de faire précéder le nom du champ du formulaire du caractère “$” pour indiquer au serveur qu’il s’agit d’une variable. La syntaxe est en cela très proche de Perl. Déclenchez l’exécution de la requête de l’instruction “mysql_query()”.

7) Recherchez et affichez un membre

Maintenant que l’utilisateur peut ajouter un membre, il faut aussi lui donner la possibilité de visualiser le contenu de l’annuaire. L’internaute aura donc la latitude de réaliser sa recherche d’un membre en fonction d’une partie du nom. Vous devez pour cela utiliser la syntaxe SQL standard : “WHERE champs LIKE ‘%variable%'” où la valeur de la variable est égale à celle de “$nom”. L’exécution de la requête fait appel au même mécanisme que précédemment. Attention, le résultat stocké dans la variable “$resultat” n’est qu’un pointeur. Vous ne devez donc pas couper la connexion à la base tant que vous n’aurez pas fini d’afficher les enregistrements.

8) Comptez les résultats obtenus

Commencez par les dénombrer à l’aide de la fonction “mysql_numrows (variable)” qui compte automatiquement le nombre d’enregistrements retournés par la requête. Il suffit ensuite de stocker le résultat de cette fonction dans une variable pour pouvoir l’afficher simplement à l’aide de l’instruction “echo”.

9) Affichez les membres

Cette dernière étape est réellement déclenchée à l’aide d’un “fetch” sur le pointeur. Utilisez la fonction “mysql_fetch_array()” pour stocker les enregistrements dans un tableau. Ils seront plus simples à manipuler dans ce type de structure. D’autre part, vous avez tout intérêt à inclure le fetch dans une boucle conditionnelle afin de simplifier la programmation, d’augmenter la vitesse d’affichage et d’éviter les messages d’erreur. C’est l’objet de la ligne “while {$tableau = mysql_fetch_ array($resultat)) {” qui correspond à la condition “tant qu’il existe des enregistrements alors”. Extrayez les données du tableau pour pouvoir les manipuler et les afficher à loisir au moyen de la ligne “$variable=$tableau[“nom_du_ champs_de_la_base”]”. Il ne vous reste plus qu’à afficher les informations obtenues à l’aide de la commande “echo”.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Frédéric Bordage