Cours pratique d'initiation à PHP/MySQL | Sommaire ![]() |
Pour l'instant, nous n'avons défini que 2 fonctions : les fonctions exit_if_empty() et exit_if_not_integer(). Et nous n'y faisons appel que dans un script : le script insert_action.php. Si plus tard on veut faire appel à ces fonctions dans d'autres scripts du projet Gaming, on pourra :
Cette deuxième solution présente au moins 2 avantages par rapport à la 1ère :
De plus, la réalisation pratique de cette deuxième solution est très simple. Concrètement il suffit :
On pourra ensuite enrichir le fichier mes_fonctions.inc.php en y rajoutant d'autres définitions de fonctions au fur et à mesure de nos besoins. De cette façon, on centralise les définitions des fonctions auxquelles nos scripts font appel.
Créer le fichier mes_fonctions.inc.php
dans le même répertoire que les scripts
du projet Gaming
et y placer les définitions des fonctions
exit_if_empty() et
exit_if_not_integer()
(faire un simple couper-coller).
N.B. : N'oubliez pas de commencer et de terminer
ce fichier par
<?php
et ?>
comme pour n'importe quel autre script PHP.
Dans le fichier insert_action.php faire les 2 modifications suivantes :
Tester cette nouvelle version du script insert_action.php.
Le rôle de l'instruction require "mes_fonctions.inc.php"; est le suivant : au moment où le script insert_action.php est exécuté, l'instruction require "mes_fonctions.inc.php"; est remplacée par le contenu du fichier mes_fonctions.inc.php. Tout se passe donc comme si les définitions des fonctions exit_if_empty() et exit_if_not_integer() étaient encore présentes à l'intérieur même du fichier insert_action.php.
Les scripts select_all.php (affichage de tous les rounds), insert_action.php (insertion d'un nouveau round) et search_action.php (recherche et affichage des rounds trouvés) ont tous besoin de se connecter au serveur MySQL local et de sélectionner une base avant de pouvoir envoyer une requête au serveur. Dans tous ces scripts, il serait donc intéressant de remplacer les instructions de connexion (mysql_connect()) et de sélection d'une base (mysql_select_db()) par une seule instruction qui se charge de tout. Pour cela, il suffit de créer une nouvelle fonction qu'on va appeler connexion() par exemple. En plaçant la définition de cette fonction une seule fois dans le fichier mes_fonctions.inc.php, on pourra ensuite l'utiliser dans tous les scripts du projet.
La fonction connexion() doit :
Fichier mes_fonctions.inc.php :
<?php
error_reporting(E_ALL);
function connexion()
{
$db_link = mysql_connect("localhost","mon_username","mon_password")
or die(mysql_error());
mysql_select_db("ma_base",$db_link) or die(mysql_error());
return $db_link;
}
function exit_if_empty($champ,$nom_du_champ)
{
...
}
function exit_if_not_integer($champ,$nom_du_champ)
{
...
}
?>
|
Dans les scripts select_all.php, insert_action.php et search_action.php :
Tester ces nouvelles versions des scripts select_all.php, insert_action.php et search_action.php.
Les scripts select_all.php (affichage de tous les rounds) et search_action.php (recherche et affichage des rounds trouvés) affichent tous les deux un tableau HTML qui contient les rounds renvoyés par une requête SELECT. Là aussi, il peut être utile de créer une fonction (qu'on va appeler show_rounds()) qui se charge d'afficher ce tableau à partir de l'identifiant de résultat renvoyé par la fonction mysql_query().
Pour la fabrication de la fonction show_rounds(), procèder de la façon suivante :
<?php
error_reporting(E_ALL);
function connexion()
{
...
}
# Pour l'instant cette fonction ne fait rien !
function show_rounds($result)
{
return;
}
function exit_if_empty($champ,$nom_du_champ)
{
...
}
function exit_if_not_integer($champ,$nom_du_champ)
{
...
}
?>
|
<?php
...
// Affichage sous forme de tableau HTML des rounds
// contenus dans l'identifiant de résultat $result
function show_rounds($result)
{
<TABLE BORDER="3">
<TR>
<TH>Date</TH>
<TH>Round</TH>
...
</TR>
while ($row = mysql_fetch_assoc($result)) {
echo "<TR>";
echo "<TD>" . $row['date'] . "</TD>";
echo "<TD>" . $row['num_round'] . "</TD>";
...
echo "</TR>";
}
</TABLE>
return;
}
...
?>
|
<?php
...
// Affichage sous forme de tableau HTML des rounds
// contenus dans l'identifiant de résultat $result
function show_rounds($result)
{
echo "<TABLE border=\"3\">\n";
echo "<TR>";
echo "<TH>Date</TH>";
echo "<TH>Round</TH>";
...
echo "</TR>\n";
while ($row = mysql_fetch_assoc($result)) {
echo "<TR>";
echo "<TD>" . $row['date'] . "</TD>";
echo "<TD>" . $row['num_round'] . "</TD>";
...
echo "</TR>\n";
}
echo "</TABLE>\n";
return;
}
...
?>
|
Voilà, la fonction show_rounds() est prête ! On peut maintenant l'appeler dans tous les scripts du projet Gaming qui doivent afficher la liste des rounds renvoyés par le serveur MySQL en réponse à une requête SELECT.
Modifier le script search_action.php pour qu'il affiche, à l'aide de la fonction show_rounds(), la liste des rounds trouvés. Tester.
Page d'accueil de Hervé Pagès | Contact : herve.pages@free.fr |