Support : B.KANNE VTT ©BAC STT IG-1995
Dossier 4 "Gestion des frais de déplacement (Annexes 6, 7, 8)"
-> Calcul d'indemnités de déplacement en fonction du nombre de kilomètres, de la puissance fiscale du véhicule et de
tranches kilométriques.
function frais($nbKm, $nbCv) { ... return $montant; }
$tarif=array(); $tarif[0]=5; $tarif[1]=12; $tarif[2]=7; $tarif[3]=48; echo $tarif[2]; // affiche le 3ème élément du tableau soit '7'
Ou bien
$tarif=array(5, 12, 7, 48); echo $tarif[1]; // affiche le 2ème élément du tableau soit '12'
remarque : premier indice = 0 !
if ($nbCv > 13) { $nbCv=13; }
if ($nbCv > 13) { $nbCv=13; } else { ... }
if ($nbKm < 5000) { $montant1= ... ; } else { $montant1= ... ; if ($nbKm < 10000) { $montant2= ... ; } else { $montant2= ... ; $montant3= ... ; } }
Écrire (implémenter) la fonction "frais" ...
remarque : pour la tester, ajouter le code suivant en dehors de la fonction
function frais($nbKm, $nbCv) { ... return $montant; } echo frais(7000, 9);
Création de la base "bkanne_vtt" et de la table "recap" (cf. phpMyAdmin)
Utilisation de la bibliothèque "mysql.dll" (déjà chargée cf. php.ini)
$connexion=mysql_connect(SERVEUR, UTILISATEUR, MOTDEPASSE); if (!$connexion) { die('Impossible de se connecter > '.mysql_error()); } if (!mysql_select_db(BASE,$connexion)) { die('Impossible de sélectionner la base de données > '.mysql_error()); }
remarque : die permet d'afficher un message et d'arrêter l'exécution du programme (problème grave !)
$recap=mysql_query("select * from recap"); while($ligne=mysql_fetch_array($recap)) { echo $ligne["r_totalkm"]; }
remarque : $ligne["r_totalkm"] permet d'accéder au champ "r_totalkm" de la ligne courante.
Lister le contenu de la table "recap"...(version 1 sans HTML et version 2 avec HTML)
remarque : pour insérer des données dans une chaîne HTML, utiliser l'opérateur de concaténation qui est le point [.] et le délimiteur de chaîne qui sera l'apostrophe ['] (afin d'utiliser les guillemets du code HTML sans conflits !)
echo '<td width="25%">'.$ligne["r_nom"].'</td>';
Des répétitions de lignes de code apparaissent dans les différentes versions ! Pour éviter cela, il est recommandé de créer des fichiers pour chaque bloc répété,
Fichier "_connexion.php"
<?php define("SERVEUR","localhost"); define("BASE", "bkanne_vtt"); define("UTILISATEUR","root"); define("MOTDEPASSE",""); $connexion=mysql_connect(SERVEUR, UTILISATEUR, MOTDEPASSE); if (!$connexion) { die('Impossible de se connecter > '.mysql_error()); } if (!mysql_select_db(BASE,$connexion)) { die('Impossible de sélectionner la base de données > '.mysql_error()); } ?>
Puis de les inclure, quand c'est nécessaire, à l'aide de l'instruction 'include'
include("_connexion.php");
remarque : le trait de soulignement indique un fichier non utilisable directement (ce n'est qu'une convention !) . Certain ajoute même l'extension 'inc' pour signifier qu'il doit être inclus dans un autre fichier...
include("_connexion.inc.php");
Afficher les montants des indemnités pour chaque personne avec les inclusions de fichiers suivantes :
include("_connexion.php"); // réalise la connexion à la base de données include("_fx_frais.php"); // fonction frais(nbKm, nbCv)
Pour les plus rapides et intrépides ...
Proposer une version de la fonction Frais avec des tarifs provenant de la base de données et non plus directement fixés dans le corps de la fonction.
Même raisonnement pour les tranches et les coefficients ...