Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site
Dans ce chapitre nous abordons les conditions et les boucles.
Si vous connaissez JavaScript vous constaterez que les structures de contrôle PHP sont très proches de celles de Javascript.
Attention pour tester l'égalité il faut écrire == et pour tester la différence il faut écrire !=.
Le code de l'exemple (partie BODY) :
J'en profite pour introduire une fonction PHP très utile : rand().
Ici l'instruction génère un entier aléatoire compris entre 1 et 20 et l'affecte à la variable $note.
Dans une condition if le bloc d'instructions entre accolades est exécuté si la condition est VRAIE.
Le rendu :
Actualisez la page pour générer de nouveau un entier de façon aléatoire !
Reprenons le thème précédent. Plutôt que deux conditions if simples on peut utiliser une seule condition if ... else ...
Le code de la partie BODY avec if ... else ... :
Le rendu :
La note va être saisie via un formulaire et il y a désormais quatre appréciations possibles (et non pas plus deux).
Il y a une grosse erreur dans le code HTML mais ... une erreur volontaire.
Les contrôles de saisie HTML5 (attributs required et pattern de la balise input) sont ici inopérants !!!
Pour l'explication voir le chapitre précédant : "les fonctions PHP".
Donc je suis obligé de faire le contôle de saisie en PHP avec une condition complexe : ensemble de plusieurs conditions simples reliées par
des opérateurs logiques.
La fonction PHP is_numeric(variable) retourne VRAI si la variable contient un nombre.
Donc!is_numeric($note) (lire NOT is_numeric) retourne VRAI si le contenu n'est pas un nombre.
Le rendu :
Lors de l'affichage de la page un message d'erreur peut apparaître :Undefined index : note in ...
Pas de panique ! C'est logique. Il n'y a pas encore eu de soumission donc le tableau $_POST n'existe pas encore.
Il aurait fallu rajouter un test basé sur la fonction isset() !
La structure switch existe en JavaScript ; elle existe aussi en PHP et avec la même restriction : le seul opérateur de comparaison admis est égal.
Donc le thème précédent ne peut être traité avec un switch !
Le nouveau thème est : affichage du nom de département en fonction du code minéralogique saisi.
Code HTML du formulaire : saisie du code département via une liste.
Code PHP :
Un bon conseil : commentez les accolades fermantes et indentez bien les lignes de code.
Emploi d'un test basé sur la fonction isset pour ne pas avoir la mésaventure de l'exemple précédent.
Le rendu :
Le bloc d'instructions contenu dans un boucle est répété plusieurs fois. On parle d'itérations.
Thème : afficher la table de multiplication par 5 (50 premières lignes : 5*1 = 5 à 5*50 = 250).
Le bloc d'instructions à l'intérieur des accolades est répété tant que $i est inférieur 51 (condition du while).
Pour éviter de boucler à l'infini il faut incrémenter $i dans la boucle.
Il faut aussi éviter que la condition du while ne soit jamais vérifiée ... ($i a une valeur initiale > à 50).
Ici $i est incrémenté de 1 : $i++
Et $i est initialisé à 1 ($i =1 ; ) avant l'entrée dans la boucle.
Le rendu :
Reprenons le même thème mais traitons le avec la structure for !
Le code de la partie BODY :
Le rendu :
La table de multiplication inversée :
Le rendu :
La variable $i est initialisée à 50 et à chaque passage dans la boucle elle est décrémentée de 2 ($i-=2).
Pour afficher toutes les valeurs d'un array vous pouvez utiliser "while" ou "for" mais la structure
for...each est plus adaptée.
Pour revoir la structure foreach je vous invite à relir le chapitre précédent sur les "arrays".