Nous utilisons des cookies pour améliorer votre expérience.

MacBidouille

Apache - php - mySQL

Détails et utilisation de ce trio serveur web - langage - base de données


Mon premier script PHP

pré-requis :
Je rappelle qu'un minimum de base sur le langage html, même si je vais essayer de tout expliqer, est quand même necéssaire pour cette partie. PHP va nous permettre de construire automatiquement des pages html, et il me parait illusoire de vouloir faire un script pour afficher des pages dans un langage que l'on ne connait pas.
Toute page html qui se respecte possède un squelette qui se présente de la façon suivante :
<html>
<head>
<title>Titre de la page</title>
</head>
<body>
Corps de la page
</body>
</html>

Pour une page en php, nous allons bien sûr retrouver tout ceci, mais nous allons en plus quelques lignes, ne serait-ce que pour gérer la connexion à la base de données. Voyons ce que donnerait une page php pour afficher le contenu de notre base de données dans une page web.

Pour ceux qui ne veulent pas retaper tout ce code, le fichier texte est disponible ici.
On mémorise tout ceci dans une page que l'on nomme par exemple index.php, puis depuis un navigateur Web, on tape http://chemin_de_la_page . Normalement, un tableau contenant toutes les données de la base doit s'afficher. Tout ceci mérite des explications. Par rapport à une page html classique, la page php contient du code entre les balises <?php et ?>. Ce code permet la connexion à la base, puis de récupérer les données qu'elle contient. La requête principale de notre script est très simple :
- SELECT permet de dire que l'on va aller chercher (sélectionner) des données.
- * veut dire que l'on veut récupérer toutes les données. Si on avait à la place SELECT ville FROM annuaire, seule cette donnée aurait été affichée dans notre tableau. Le script étant d'ailleurs suffisament bien écrit, le tableau aurait été redimensionné comme il faut. Le mieux pour comprendre est d'essayer, en mettant à tout de rôle à la place de * l'un des champs de la table, comme par exemple ville, nom ou prénom.
- FROM et annuaire sont là pour dire dans quelle table se trouvent les données. Une base peut contenir plusieurs tables. Les paramètres de la base ayant déjà été donnés, il faut à cet endroit encore donner les paramètres de la table.

Comment pourait-on améliorer cette requête? Imaginons par exemple que dans votre annuaire, plusieurs personnes habitent à Nancy, d'autres à Paris, et encore d'autres à Mulhouse. Si votre requête est la suivante : SELECT ville FROM annuaire, toutes les villes vont s'afficher, mais en plusieurs exemplaires. Mais vous avez peut être envie de n'afficher qu'une seule fois chaque ville. Il suffit pour cela de modifier la requête de la façon suivante : SELECT DISTINCT ville FROM annuaire
Mais comment faire pour afficher cette liste de ville dans l'ordre alphabétique, et non pas dans l'ordre dans lequel ont été insérés les enregistrements dans la base de données? On utilise tout simplement une requête modifiée de la sorte : SELECT ville FROM annuaire ORDER BY ville. Vous pouvez de même afficher toutes les données de la base en triant suivant les prénoms : SELECT * FROM annuaire ORDER BY prenom.
Tous les mots clés sont associables, ce qui permet des requêtes du genre :
- SELECT * FROM annuaire ORDER BY nom
- SELECT prenom FROM annuaire ORDER BY prenom
- SELECT * FROM annuaire WHERE ville='Nancy'
- SELECT * FROM annuaire WHERE ville='Nancy' ORDER BY prenom
- SELECT ville, telephone FROM annuaire (si l'on ne souhaite afficher que ces deux champs) - ...
Il faudrait maintenant pour en faire plus intégrer ce script dans une page html complète, comme par exemple ce que nous avons pour la page d'intro de MacBidouille : les niouzes qui se trouvent au milieu de la page sont appelées depuis une base de données, mais elles sont intégrées au reste de la page.
Voilà, vous êtes presque le Dieu du php. Presque, car cet exemple ne représente même pas 1% de ce qu'il est possible de faire avec ce langage. Mais c'est déjà un bon début. ;-)

Partager sur

Sondage

Etes-vous tenté par le nouveau Mac mini M4 ?