Dices que tomas las imágenes a poner en cada celda de la tabla desde la base de datos. Asumiendo que con imágenes te refieres a la ruta de cada archivo de imagen, no creo que sería complicado.
Lees desde la base las imágenes en orden fila x columna.
A medida que recorres el resultado de la consulta, vas escribiendo en HTML la celda de la tabla con la imagen dentro, sea como fondo o como el archivo de imagen en sí.
Código PHP:
<table>
<?
$sql = mysql_query("select ruta, posX, posY from mapa order by posX, posY");
$i = 0;
while ($fila = mysql_fetch_array($sql))
{
if ($ult_posX != $fila["posX"])
{
if ($i > 0)
{ print"</tr>\n"; }
print"<tr>\n";
$i++;
}
?>
<td><img src="<?= $fila["ruta"]; ?>" width="100" height="100" border="0"></td>
<?
$ult_posX != $fila["posX"];
}
?>
</tr>
</table>
El resultado quedaría algo así:
Código HTML:
<table>
<tr>
<td><img src="mapa_posA1.jpg" width="100" height="100" border="0"></td>
<td><img src="mapa_posA2.jpg" width="100" height="100" border="0"></td>
<td><img src="mapa_posA3.jpg" width="100" height="100" border="0"></td>
</tr>
<tr>
<td><img src="mapa_posB1.jpg" width="100" height="100" border="0"></td>
<td><img src="mapa_posB2.jpg" width="100" height="100" border="0"></td>
<td><img src="mapa_posB3.jpg" width="100" height="100" border="0"></td>
</tr>
</table>
Si cada celda es en verdad un link, pues se lo agregas a cada imagen :)
¿Es algo como esto lo que preguntabas?