PHP : Le tutoriel pour grands débutants pressés
PHP : Le tutoriel pour grands débutants pressés
Date de publication : 17 janvier 2009
IV. PHP ETAPE 4
IV-1. Les tableaux simples
IV-2. Les commentaires
IV-3. Les tableaux associatifs
IV-4. La boucle foreach
IV-5. Boucle foreach et variables POST
IV-6. TP4
IV-7. Correction du TP4
IV. PHP ETAPE 4
Vous avez un formulaire qui propose des saisies au client (client au sens informatique du mot, par opposition à serveur). Disons une dizaine.
Vous vous en souvenez, cela créera une dizaine de variables $_POST['nom_de_l_input'].
Il se trouve que PHP range automatiquement ces variables dans un tableau. Nous y reviendrons à la fin de cette étape.
Commençons par voir ce qu'est un tableau :
Vous vous en souvenez, cela créera une dizaine de variables $_POST['nom_de_l_input'].
Il se trouve que PHP range automatiquement ces variables dans un tableau. Nous y reviendrons à la fin de cette étape.
Commençons par voir ce qu'est un tableau :
IV-1. Les tableaux simples
Un tableau, c'est un moyen de stocker plusieurs variables, selon un plan qui vous paraît logique.
C'est comparable à un meuble avec ses tiroirs.
Dans le tiroir 0, (oui, le tableau commence par le tiroir zéro), vous rangez la variable lundi par exemple, dans le tiroir 1, vous rangez la variable mardi etc.
C'est comparable à un meuble avec ses tiroirs.
Dans le tiroir 0, (oui, le tableau commence par le tiroir zéro), vous rangez la variable lundi par exemple, dans le tiroir 1, vous rangez la variable mardi etc.
En informatique, on appelle index ou indice le numéro de tiroir (la position de la variable dans le tableau), et valeur la valeur de la variable entreposée.
Voici la syntaxe d'un tableau tout simple
Voici la syntaxe d'un tableau tout simple
On construit le tableau des jours de la semaine |
|
Par cette simple ligne, vous venez de construire un tableau (qui vous le remarquerez, est une variable en lui même puisqu'il commence par $, mais une variable complexe, organisée).
$semaine est le nom du tableau entier.
Vous lui avez affecté des valeurs, (via la commande array, il sait que c'est un tableau).
Et ici, par défaut, l'index commence à 0, donc dimanche aura pour index... 6 et non 7.
Une fois construit ce tableau, comment convoquer une valeur ?
$semaine[2] sera...mercredi et ainsi de suite... selon la règle : $semaine[index]
Vous pouvez le vérifier en tapant la commande suivante :
Et ici, par défaut, l'index commence à 0, donc dimanche aura pour index... 6 et non 7.
Une fois construit ce tableau, comment convoquer une valeur ?
$semaine[2] sera...mercredi et ainsi de suite... selon la règle : $semaine[index]
Vous pouvez le vérifier en tapant la commande suivante :
|
Bien sûr ici, nous avons construit un tableau contenant des variables string (les jours de la semaine) et des indices numériques (0,1,2 etc...).
On peut tout-à-fait ranger des valeurs numériques dans un tableau.
Ainsi ce tableau qui stocke quelques années marquantes de l'histoire de France...
Ainsi ce tableau qui stocke quelques années marquantes de l'histoire de France...
Histoire de France |
|
La commande echo renverra... 1851 ici.
IV-2. Les commentaires
Au sein de votre code, il est bon de poser parfois quelques commentaires, quelques lignes d'explication qui ne seront bien entendu pas considérées par la machine comme des lignes de programmation à exécuter mais des lignes qu'elle pourra zapper, et qui ne sont destinées qu'au programmeur, qui remet le nez dans son programme parfois dix ans après et ne sait plus pourquoi ou comment il a conçu son code.
Parfois, c'est une autre personne qui hérite du programme. Dans tous les cas, il faut donc commenter son code.
Parfois, c'est une autre personne qui hérite du programme. Dans tous les cas, il faut donc commenter son code.
Deux sortes de syntaxe pour des commentaires en PHP
- Petit commentaire sur une seule ligne // en début de ligne
- Commentaire sur plusieurs lignes /* au début et */ en dernier...
Comment rédiger des commentaires dans son code |
|
PS : à partir de maintenant dans ce tuto, les commentaires me permettront également d'insérer mes commentaires didactiques directement dans mon code...
C'est-y-pas plus facile ?
IV-3. Les tableaux associatifs
Ici, la seule différence, par rapport à un tableau simple, c'est que l'index n'est plus numérique, mais lui-même une variable string :
Par exemple, votre tableau veut stocker une adresse.
Sachant que chaque adresse comporte en gros et dans cet ordre, un nom, un prénom, un numéro, une rue, un code postal et une ville...
On peut construire le tableau suivant :
Par exemple, votre tableau veut stocker une adresse.
Sachant que chaque adresse comporte en gros et dans cet ordre, un nom, un prénom, un numéro, une rue, un code postal et une ville...
On peut construire le tableau suivant :
Un tableau associatif pour stocker une adresse |
|
'num' est ici un index du tableau adresse. 12 est la valeur stockée à l'index 'num'.
|
Bien entendu, l'intérêt d'un tableau d'adresses, c'est d'en stocker plus d'une !
Alors nous procèderons... à un tableau de tableaux, un tableau imbriqué en fait...
Nous venons de voir que $adresse4 est un tableau.
Construction d'un tableau de tableaux |
|
Je procède ensuite en deux étapes :
Convoquer une donnée dans un tableau de tableaux - Méthode 1 |
|
Compris ? Allez, même si ça pique un peu la tête, signalons au passage que l'on aurait pu retrouver le nom de Mickaël dans ce tableau de tableaux par la syntaxe suivante, plus condensée :
Convoquer une donnée dans un tableau de tableaux - Méthode 2 |
|
IV-4. La boucle foreach
Bien sûr, l'idéal pour parcourir les valeurs d'un tableau, c'est une boucle.
La boucle foreach (pour chaque élément) présente l'avantage de parcourir la totalité d'un tableau, même si l'on n'a aucune idée du nombre d'éléments qu'il contient.
La boucle foreach (pour chaque élément) présente l'avantage de parcourir la totalité d'un tableau, même si l'on n'a aucune idée du nombre d'éléments qu'il contient.
Reprenons notre tableau des jours de la semaine, comment le parcourir ?
Egrener les jours de la semaine |
|
Copiez, collez maintenant le gros morceau de code qui suit, dont nous avons vu l'essentiel tout à l'heure, la construction à la main d'un agenda d'adresses :
L'agenda : un tableau de tableaux |
|
Ceux qui ont suivi le devinent, qui dit tableau de tableaux dit... boucles imbriquées pour la lecture du tableau :
Une boucle pour lire chaque champ dans l'adresse imbriquée dans une boucle pour lire chaque adresse |
|
Et voici notre agenda qui s'affiche de façon assez lisible...
Bien, nous arrivons maintenant au coeur de notre problème, et nous revenons à notre formulaire :
Comment récupérer des variables $_POST, résultats d'un formulaire de saisie, quand elles sont nombreuses ?
Comment récupérer des variables $_POST, résultats d'un formulaire de saisie, quand elles sont nombreuses ?
IV-5. Boucle foreach et variables POST
PHP construit automatiquement un tableau associatif dès que l'on soumet un formulaire.
Ce tableau se nomme $_POST, chaque élément a pour index le 'name' d'un élément du formulaire, et chaque valeur, la valeur entrée par l'utilisateur dans chaque champ avant de cliquer sur le bouton 'submit'.
On peut donc égrener tranquillement notre tableau de variables POST de cette façon :
Ce tableau se nomme $_POST, chaque élément a pour index le 'name' d'un élément du formulaire, et chaque valeur, la valeur entrée par l'utilisateur dans chaque champ avant de cliquer sur le bouton 'submit'.
On peut donc égrener tranquillement notre tableau de variables POST de cette façon :
une boucle foreach pour récupérer les variables POST |
|
Pour vous en convaincre, reprenons le formulaire sur l'IMC, (correction du TP3) et voyons ce que cette boucle produit :
Récupérons tout le tableau $_POST de notre petit code sur l'IMC |
|
Ce petit bout de code ne fait qu'afficher la valeur des variables que le client vient d'entrer plus la valeur (permanente) de valider qui est 'ok'...
IV-6. TP4
Sur le fichier tp4.php, offrez via un formulaire la saisie du nom, du prénom, de l'âge, de la ville et de l'activité.
Quand l'utilisateur clique sur le bouton valider, il voit apparaître en dessous du même formulaire le message suivant :
'Vous venez de saisir :' puis à la ligne à chaque fois un tiret son nom, un tiret son prénom etc...
Comme d'habitude sans copier... De mémoire seulement...
Par ailleurs, on ne veut pas voir 'ok' dans la liste de ce que l'on vient de saisir...
Quand l'utilisateur clique sur le bouton valider, il voit apparaître en dessous du même formulaire le message suivant :
'Vous venez de saisir :' puis à la ligne à chaque fois un tiret son nom, un tiret son prénom etc...
Comme d'habitude sans copier... De mémoire seulement...
Par ailleurs, on ne veut pas voir 'ok' dans la liste de ce que l'on vient de saisir...
IV-7. Correction du TP4
Veuillez cliquer sur le symbole à droite pour découvrir la solution quand vous aurez fini.
tp4.php |
|