« Programmation PHP/Exemples/BD 1 » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
 
Ligne 20 :
 
'''Fichier BD.sql : '''
<sourcesyntaxhighlight lang="sql">
CREATE TABLE `employe` (
`ID` BIGINT NOT NULL AUTO_INCREMENT ,
Ligne 52 :
'', 'Martin', 'Georges', '9000'
);
</syntaxhighlight>
</source>
La table créée par ces requêtes est la suivante :
 
Ligne 96 :
==== Étape 1 : les paramètres spécifiques au site ====
Pour réaliser la première étape nous allons créer un fichier '''params.php''' qui contient 4 variables $host (le nom de la machine qui héberge la base de données, $user (le nom de l'utilisateur de la base de données), $password (le mot de passe de cet utilisateur) et $base le nom de la base de données. Ces paramètres changent en fonction de la plateforme que vous utilisez. Il est intéressant d'isoler ces paramètres dans un fichier séparé, que ce soit au niveau de la sécurité ou pour porter l'application sur une autre plateforme. Il faut se renseigner au niveau de l'hébergeur sur les caractéristiques de la plateforme utilisée. Les paramètres suivants sont ceux par défaut si on utilise EasyPHP. On a juste créé une base de données appelée ''toto''.
<sourcesyntaxhighlight lang="php">
<?php
$host='localhost';
Ligne 103 :
$base='toto';
?>
</syntaxhighlight>
</source>
Pour récupérer, ces paramètres il suffit d'inclure ce fichier en utilisant le mot clé require.
On écrira ''require'params.php' ''. Le fichier sera alors inclus dans le programme en php et le programmeur utilisera les 4 variables.
Ligne 124 :
==== Étape 7 : générer du HTML à partir du résultat de la requête ====
Supposons que le résultat d'une requête soit contenu dans la variable $r. Il est souvent intéressant de parcourir un à un tous les enregistrements contenus dans $r. L'appel de fonction ''$a=mysql_fetch_object($r)'' permet de récupérer un à un tous les enregistrements dans la variable $a. Lors du premier appel, on récupère le premier enregistrement dans $a, lors du second appel, on récupère le second enregistrement et ainsi de suite jusqu'au dernier enregistrement. Si on appelle alors une nouvelle fois cette fonction, elle va renvoyer le booléen false. Ceci permet donc de traiter un à un tous les enregistrements en écrivant
<sourcesyntaxhighlight lang="php">
while ($a=mysql_fetch_object($r)) {
...
}
</syntaxhighlight>
</source>
Lors de l'exécution de ce while $a va prendre toutes les valeurs des différents enregistrements contenus dans $r, du premier au dernier. À partir de l'objet $a, on pourra récupérer le champs NOM de cet enregistrement en écrivant ''$a->NOM''. On peut ainsi récupérer la valeur de chaque champ d'un enregistrement.
Il suffit donc maintennant de parcourir chaque enregistrement et d'afficher du HTML en utilisant la commande <code>echo</code> à partir des différents champs des enregistrements.
Ligne 134 :
=== Les pages du site (version 1) ===
'''Fichier index.html'''
<sourcesyntaxhighlight lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ligne 151 :
</body>
</html>
</syntaxhighlight>
</source>
 
 
'''Fichier params.php'''
<sourcesyntaxhighlight lang="php">
<?php
$host='localhost';
Ligne 162 :
$base='toto';
?>
</syntaxhighlight>
</source>
 
 
'''Fichier liste1.php'''
<sourcesyntaxhighlight lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ligne 197 :
</body>
</html>
</syntaxhighlight>
</source>
 
 
'''Fichier liste2.php'''
<sourcesyntaxhighlight lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ligne 232 :
</body>
</html>
</syntaxhighlight>
</source>
 
 
'''Fichier liste3.php'''
<sourcesyntaxhighlight lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ligne 267 :
</body>
</html>
</syntaxhighlight>
</source>
 
=== Les pages du site (version 2) ===
Ligne 273 :
 
Le nouveau '''fichier index.html''' devient donc :
<sourcesyntaxhighlight lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ligne 290 :
</body>
</html>
</syntaxhighlight>
</source>
On constate donc que les liens hypertextes, par exemple ''liste.php?l=1'' appelle le même fichier liste.php en lui donnant un paramètre par la méthode GET, ici l=1, ce qui permet de paramétrer le fichier.
 
Ligne 297 :
 
Le '''fichier liste.php''' devient :
<sourcesyntaxhighlight lang="php">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Ligne 336 :
</body>
</html>
</syntaxhighlight>
</source>
Le programmeur teste en utilisant ''isset($_GET['l'])'' pour savoir si la variable l a été passée par la méthode GET et il récupère sa valeur dans la variable $l. Si ce paramètre n'existe pas, $l est fixé à la valeur 1. On construit ensuite la requête $query en fonction de la valeur de $l. Cette version du programme est plus simple mais îil faut toutefois faire très attention à la sécurité dans un tel cas.