Les Tableaux a 2 dimensions en PHP.

Ces scripts ont ete utilises pour creer l'index de http://tfflancsmaps.free.fr

Sachant que je ne voulais pas utiliser une base Mysql pour stocker les donnees et avoir l'information dans le fichier, la solution du tableau appelé par une boucle ma parrassait une bonne solution.
Pourquoi ce choix ? Plusieurs contrainte, les includes, informations / sources délocalisées.

Nous ne rentrerons pas dans la base et la structure du tableau.
Pour plus d'info sur les tableaux simples. : http://www.php.net/manual/fr/function.array.php

La premiere version :

De base, je suis partie sur deux tableaux simples, pour avoir le nom des maps.
$tab = array(
"cs_pienza",
"de_nuke2k",
"de_scud",
"de_luxor");
Puis les commentaires des maps :
$desc = array(
cs_pienza => "Map cree par t00f, Village Italien.",
de_nuke2k => "Rien pour l'instant",
de_scud => "description ect ...",
de_luxor => "Tres belle Map tres apprecié en general, ect .....");
Donc on se retrouve avec deux tableaux : $tab pour pour les noms des maps et $desc pour les commentaires.
La contraite, des qu'une nouvelle map est ajoutée indiquer le nom de la map dans $tab et egalement dans $desc.
Tant qu'il y a 5/10 lignes c'est gerable mais 50 ... bref on vera plus bas pour simplifier.

Pour afficher ces informations nous creons une boucle.
echo "<table>";
For ($i=0;$i<count($tab);$i++)
{
$nom =$tab[$i];
echo "<tr><td>
<img src='http://tfflancs.free.fr/vignettemap/$tab[$i].gif' width='180' height='135'>
</td><td> Telecharger la map : [<a href='http://tfflancsmaps.free.fr/maps/$tab[$i].zip'>Cliquez ici</a>]
 [Nom de la map : $tab[$i]] 
<br><u>Commentaire :</u> $desc[$nom]</td></tr>\n";
}
echo "</table>";
Ce que fait cette portion de script :
On parcourt le premier tableau For ($i=0;$i<count($tab);$i++)
On recupere le nom de la map $nom =$tab[$i];
On affiche l'image de la map <img src='http://tfflancs.free.fr/vignettemap/$tab[$i].gif' width='180' height='135'>
On cree un lien vers le telechargement de la map </td><td> Telecharger la map : [<a href='http://tfflancsmaps.free.fr/maps/$tab[$i].zip'>Cliquez ici</a>]
On affiche le nom de la map [Nom de la map : $tab[$i]]
On affiche le descriptif <br><u>Commentaire :</u> $desc[$nom]</td></tr>\n";


Simplifier le tableau et centraliser l'information avec un tableau a 2 dimensions :

$tab = array(
"1" => array("cs_pienza","Map cree par t00f, Village Italien."),
"2" => array("de_nuke2k","Rien pour l'instant"),
"3" => array("de_scud","no comment"),
"4" => array("aim_map","Un style de Fy_Iceworld"),
"5" => array("cs_1337_assault","Assault mais plus ouvert"),
"6" => array("cs_beersel","Genre chateau mais plus ouvert"),
"7" => array("fy_aztec","Un style fy_Iceworld mais version aztec"),
"8" => array("de_luxor","Tres belle Map tres apprecié en general, se passe dans un desert....")
);
Le tableau est un peu different, il se compose d'un tableau $tab qui lui meme contient plusieurs tableau (1, 2, 3, ect.).
Les tableaux 1, 2 , 3, ect. se composent de deux champs, Nom de la map et le descriptif.

Le script qui affiche le contenu :
echo "<table>";
For ($i=1;$i<count($tab);$i++)
{
$nom =$tab[$i][0];
$description =$tab[$i][1];
echo "<tr><td><img src='http://tfflancs.free.fr/vignettemap/$nom.gif' width='180' height='135'>
</td><td> Telecharger la map : [<a href='http://tfflancsmaps.free.fr/maps/$nom.zip'>Cliquez ici</a>]
 [Nom de la map : $nom] <br>
<u>Commentaire :</u> $description</td></tr>\n";
}
echo "</table>";

Ce que fait cette portion de script :
  • De la meme maniere on parcourt le tableau pour compter les elements For ($i=1;$i<count($tab);$i++)
  • On recupere le nom de la map $nom =$tab[$i][0]; qui se compose de :$tab[numero du tableau][champ du tableau];
  • On recupere le descriptif $description =$tab[$i][1]; qui se compose de :$tab[numero du tableau][champ du tableau];
  • On affiche l'image echo "<tr><td><img src='http://tfflancs.free.fr/vignettemap/$nom.gif' width='180' height='135'> On ajoute la variable $nom suivi de .gif pour l'extention
  • On cree un lien vers la map </td><td> Telecharger la map : [<a href='http://tfflancsmaps.free.fr/maps/$nom.zip'>Cliquez ici</a>] On ajoute la variable $nom suivi de .zip pour l'extention
  • On affiche le nom de la map [Nom de la map : $nom] <br>
  • Et on rajoute le descriptif <u>Commentaire :</u> $description</td></tr>\n";


    Voila c'est tout, l'inconvenient dans ce script qui est certainement a améliorer, le nom de la map doit etre le meme que l'image. On ne peut pas mettre une image jpg, le gif est ecrit en dur. Idem pour le zip.
    On aurait pu faire un simple include du tableau, ce qui evite d'editer la page entiere.
    Les chemins vers les sites sont en dur, de meme nous aurions pu les mettres en arguments du style :
    index.php?cheminimage=truc&cheminzip=bidul .
    Finalement les tableaux a deux dimensions c'est assez simple non ? Le resultat http://tfflancsmaps.free.fr



    [http://tfflan.free.fr] [Retour sur http://tfflandoc.free.fr]