Gargl.... bon et ben on va commencer par le commencement hein
Un array c'est litérrallement un tableau, c'est à dire un ensemble de cases dans lesquelles on va pouvoir ranger des choses, un peu comme un placard. Dans le premier placard, tu vas mettre des livres, dans le deuxième des serviettes, dans le 3ème des cd. Concrêtement ça donne ceci :
$placard = array ($livre, $serviette, $cd);
Si jamais tu as besoin de regarder ce qui est dans le 1er et 3ème placard, il suffit de le demander ainsi :
echo $placard[0]; // bon alors le premier en info, c'est le 0, me demande pas pourquoi ;)
echo $placard[2]; // et du coup, ben le 3ème c'est le 2 !
C'est un tableau indéxé.
Bon alors dès fois, on a tout plein de placard et on veut pas forcément compter à chaque fois pour retrouver celui qui nous interesse, alors on leur donne des p'tits noms :
$placard = array (
"bouquins" => $livre,
"torchons" => $serviette,
"disques" => $cd)
;
Du coup, quand on veut les retrouver, on les appelle directement par leur nom
echo $placard['torchons']; // me renvoi $serviette
Et ça, c'est un tableau associatif.
Sauf que dans mon placard à torchons, j'ai des serviettes, mais j'ai aussi des nappes et des torchons, qui sont chacun sur une étagère différente. De même pour mes disques, j'ai séparé le classique du hip-hop parce que c'était quand même plus commode. J'ai donc maintenant des placards avec des étagères :
$placard = array (
"torchons" => array ($serviette, $nappe, $torchon)
"disques" => array ( "classique" => $cd, "hip-hop" => $cd)
);
Et pour pouvoir écouter le dernier tube de Mozart je vais aller chercher :
echo $placard["disques"]["classique"];
Et c'est ce que l'on appelle un tableau à plusieurs dimensions, ici 2, mais je peux ensuite séparer mes Mozart de mes Beethoven, les symphonies des menuets, etc.
====== End of part ouaneuh =====
====== Part touh =====
Bon, maintenant que les tableaux n'ont plus de secrets pour toi, z'yeutons voir du côté des sessions
Quand tu surfes sur un site, tu passes d'une page à une autre sans te poser de questions. Les pages sont totalement indépendantes et chacune vie sa vie comme elle l'entend. Mais parfois il faut que deux pages communiquent. Pour cela, la première envoi des données à la seconde, via l'url (en GET) ou un formulaire (en POST). Mais pour que la 3ème soit au courrant, il faut que la 2ème lui fasse suivre, et ainsi de suite, même cette andouille d'internaute décide de revenir à la première entre temps. C'est là que les sessions interviennent.
Le but de la session, c'est de stocker en mémoire sur le serveur les données de chaque utilisateur, dont tes différentes pages peuvent avoir besoin. Ainsi elles interrogent directement le serveur, le mettent à jour au besoin, et se prennent pas la tête à essayer d'informer les pages 1 et 3, elles n'auront qu'à venir chercher l'info là où elle est !
L'autre intérêt, c'est que la session a une durée de vie limitée. C'est à dire que si au bout de x minute elle n'a pas été sollicitée bah le serveur la dégage manu militari, à grand coup de pied aux fesses (enfin au niveau informatique quand même, mais l'idée est là

)
Dans ton cas, la session te permet donc de stocker en mémoire sur le serveur toutes les données relatives au surf et aux commandes de tes visiteurs, sans avoir à les consigner physiquement dans une base de données. Du coup si l'utilisateur s'en va sans valider, la session expire et ça s'arrête là, pas besoin de venir faire du ménage derrière lui. Par contre s'il valide, à ce moment là tu vas enregistrer les infos en base, pour ne surtout pas les perdre (nan parce que quand même il a payé, ca serait dommage que le serveur botte le train de sa commande

)
D'un point de vue technique, à chaque fois qu'une page à besoin de lire ou d'écrire dans la session, tu vas faire un appel à session_start() au début de ta page pour ouvrir la session, et à la variable $_SESSION pour y stocker les données dont tu as besoin. Ah ! Et bonne nouvelle, $_SESSION, c'est rien de plus qu'un array(), donc un placard, et les placards n'ont pas de secret pour toi
$_SESSION["caddie"][] = array (
"article" => "serviette",
"quantite" => 8,
"couleur" => "mauve à rayures vertes et à poids jaunes",
...
);
En espérant que tu y vois désormais plus clair sur les tableaux, les sessions et éventuellement la façon de gérer tes commandes
Ps : et bravo à ceux qui auront poursuivi la lecture jusqu'ici !