8791 sujets

Développement web côté serveur, CMS

Salut tout le monde,

Je débarque avec mes questions idiotes, mais voilà, j'arrive pas à trouver ce qui est le mieux.

Imaginons un gros lot de cases (de l'ordre de 2500 * pas mal), ayant des coordonnées (map;x;y).

J'affiche un carré de 11x11 cases, soit 121 cases, grâce à du PHP.

La plupart de ces cases (+/- 80%) possède un skin perso lié à une image (adresse de type : x-y.png). Les 20% restantes sont vierges et doivent afficher une base commune à elles toutes (adresse de type : base.png).

Je vois pour l'instant deux possibilités qui, bien que non-testées, pourraient fonctionner. Mais je me demande laquelle des deux seraient la moins lourde pour mon pauvre serveur (qui est une grosse bouse) :


Possibilité 1). Utilisation de file_exists() pour chaque case, dans un code de type :

<?php 
for($x=0;$x++;$x<=11)
{
	for($y=0;$y++;$y<=11)
	{
		$adresse="map/".$x."-".$y.".png";
		if (file_exists($adresse))
		{
			echo "<img src='".$adresse."' />";
		}
		else
		{
			echo "<img src='base.png' />";
		}
	}
}



Possibilité 2 : Utiliser le file_exists dans l'interface admin qui sert à l'insertion de la carte et ajouter un champ dans la table des cases; table qui devrait alors être géré lors de l'affichage coté PJ; ce qui ferait un truc du genre :

<?php 
for($x=0;$x++;$x<=11)
{
	for($y=0;$y++;$y<=11)
	{
		if ($info_case[base][$x][$y]==0) //si pour cette case-là, la table indique qu'il y a un skin perso
		{
			$adresse="map/".$x."-".$y.".png";
			echo "<img src='".$adresse."' />";
		}
		else
		{
			echo "<img src='base.png' />";
		}
	}
}



En gros en optimisation, c'est quoi le mieux ? Un appel à la base de données + mise en tableau (ça me semble le plus simple) ou utilisation de file_exists() pour chaque case ?

Sachant que c'est un affichage qui va être très souvent renouvelé (à chaque déplacement la question va se poser, à chaque rechargement de la carte aussi)
Bon, finalement je vais prendre la 2ème solution... Elle me permet d'introduire au besoin plusieurs fichiers de base... Ce que la première ne permet pas ^^ Smiley langue