Retourner � la page d'accueil de TJSRetourner � la page d'accueil de TJS
 
Accès aux données par PHP

Maintenant que cette introduction aux bases de données est faite, nous allons pouvoir utiliser ces données via le PHP. Si vous n'avez pas lu ce qui précède, je vous conseille vivement de recommencer au début.

Connexion à la base de données
PHP doit d'abord se connecter au serveur de base de données avec la fonction mysql_connect().
Cette fonction attend 3 paramètres :
- Serveur
- Login
- Password

Sous EasyPHP, ces paramètres sont par défaut :
mysql_connect("localhost", "root", "");

Votre hébergeur doit vous fournir ces informations pour vous connecter à la base de données de votre site.
Consultez l'aide en ligne de votre hébergeur pour en savoir plus.

Une fois la connexion au serveur réalisée, il faut sélectionner notre base de données par la fonction mysql_select_db(nom_base)

Voici la fonction générique pour se connecter à une base de données en PHP :
function MaConnexion() {
  $serveur = "localhost";
  $login = "root";
  $password = "";
  $base = "catalogue";
  mysql_connect($serveur, $login, $password) or die("Impossible de se connecter au serveur");
  mysql_select_db($base) or die("Impossible de sélectionner la base de données");
}

La syntaxe or die("message") permet de détecter que la connexion n'a pas pu se faire. Dans ce cas, le message est affiché et le script s'arrête complètement (tout le code qui suit est alors ignoré).

Exécution de requêtes SQL
En appelant la fonction MaConnexion() en début de script PHP, la connexion à la base de données est faite et se termine automatiquement à la fin du script.

Pour afficher toutes les catégories de la table Categorie, on utilise la requête SQL déjà vue plus haut :
SELECT * FROM Categorie ORDER BY Nom;

Pour exécuter une requête SQL en PHP, on crée une chaîne de caractères qui contient le code SQL et on appelle la fonction mysql_query() :
$query = "SELECT Identifiant, Nom FROM Categorie ORDER BY Nom";
$result = mysql_query($query);

Remarque : La fonction mysql_query() peut bien sûr exécuter aussi des requêtes de type INSERT, DELETE ou UPDATE.

La variable $result est un objet qui contient le résultat de la requête.
On peut connaître le nombre de lignes de ce résultat par :
$nb_lignes = mysql_num_rows($result);


Afficher le résultat d'une requête
Ce résultat $result est une liste de lignes que nous allons parcourir ligne à ligne :
while ($cat = mysql_fetch_array($result)) {
  print($cat["Nom"] . " (" . $cat["Identifiant"] . ")<BR>");
}

Qui a pour effet d'afficher dans la page :
  Processeur AMD (1)
  Processeur INTEL (2)
  Mémoire RAM (3)
  Carte mère (4)

OK, quelques explications s'imposent :)
La partie $cat = mysql_fetch_array($result) place la première ligne du résultat de la requête dans la variable $cat sous forme d'un tableau avec 2 celulles, destiné à recevoir les données de la catégorie.
Les celulles du tableau retournées par la fonction mysql_fetch_array() correspondent aux colonnes retournées par la requêtes SQL, dans la partie SELECT Identifiant, Nom. Dans cet exemple, $cat contient 2 celulles "Identifiant" et "Nom". Pour accéder aux celulles d'un tableau PHP, on utilise les crochets. La partie print($cat["Nom"]." (".$cat["Identifiant"].")<BR>"); affiche à l'écran le nom de la catégorie suivi de son identifiant entre parenthèses. Le caractère . est l'opérateur de concaténation de chaîne.

On utilise une boucle while pour continuer la lecture ligne à ligne et détecter la dernière ligne du résultat de la requête. La boucle s'arrête automatiquement quand il n'y a plus de lignes à parcourir.

Le script complet
Voici le script PHP complet pour lister les catégories et les produits :

<?php
function MaConnexion() {
  $serveur = "localhost";
  $login = "root";
  $password = "";
  $base = "catalogue";
  mysql_connect($serveur, $login, $password) or die("Impossible de se connecter au serveur");
  mysql_select_db($base) or die("Impossible de sélectionner la base de données");
}

// Appel à la fonction de connexion au début du script
MaConnexion();

// Recherche des catégories
$query = "SELECT Identifiant, Nom FROM Categorie ORDER BY Nom";
$result = mysql_query($query);
while ($cat = mysql_fetch_array($result)) {
  print($cat["Nom"] . " (" . $cat["Identifiant"] . ")<BR>");
}

// Recherche des produits
$query = "SELECT Identifiant, Nom, Prix, Vignette FROM Produit ORDER BY Nom";
$result = mysql_query($query);
while ($prod = mysql_fetch_array($result)) {
  print($prod["Nom"] . " (" . $prod["Prix"] . "&euro; )<BR>");
}
?>

Copiez ce script dans un fichier .php et lancez le, vous obtiendrez, selon les données que contient votre base de données, une page du genre :

Carte mère (4)
Mémoire RAM (3)
Processeur AMD (1)
Processeur INTEL (2)

AMD Athlon XP 2000 + (98€ )
Barette DDR 512 Mo PC2100 (56€ )
Intel Céléron 4 2GHz (145€ )
Intel Pentium 4 2GHz (245€ )


Voilà, maintenant avec PHP et MySQL, il n'y a pratiquement plus aucune limite dans les fonctionnalités que vous pouvez offrir sur un site web...
J'espère que cette introduction aux bases de données vous donnera envie de vous lancer. Je rappelle tout de même que la programmation PHP + base de données est loin d'être évidente. Il faut de la patience et pas mal de travail pour arriver à un résultat valable.

Pour rendre votre site interactif et pour traiter les données saisies par vos visiteurs, lisez le tutorial "Récupérer des données d'un formulaire en PHP".


Page Précédente The end

Troisième édition Tout JavaScript chez Dunod

Tout JavaScript le livre chez DunodEn savoir plus
Sortie le 4 janvier 2023

Version papier 29€90
Format électronique 22€99.

Commandez en ligne

Chercher une fonction, un objet, ...

Le 25/04/2024 06:00:58 sur php 7 en 42.05 ms