Вы можете установить класс таблицы или идентификатор, чтобы иметь свойства "pixel" по умолчанию. Тогда вам нужно будет только указать «занятые» классы.
ex) <table id="gridTable">..<td>
вместо <table>..<td class="pixel">
Если вы можете использовать jquery (javascript), то вы можете использовать его вместе с селекторами CSS для изменения классов только ваших «занятых» ячеек. Вместо того, чтобы проходить все ячейки (60x40 = 2400), вам нужно будет только отметить занятые ячейки.
Дополнение:
Теперь, когда я думаю об этом больше, решение javascript может быть слишком медленным / неприятным, чем оно
стоит. Вы можете сделать что-то вроде следующего, имея в виду, что это более псевдокод, чем
точный ответ и непроверенный.
<?php
$results = fromDB;
//ex) ['i' => 3, 'j' => 28, 'color' => 'red']
?>
<script>
$(document).ready(function() {
<?php
foreach ($results as $r) {
$i = $r['i'];
$j = $r['j'];
$color = $r['color'];
echo "$('#gridTable tr:eq($j) td:eq($i)').setClass('occupied')";
// OR
//echo "$('#gridTable tr:eq($j) td:eq($i)').css('background','$color')";
}
?>
});
</script>
В итоге, HTML будет статичным. <table id="gridTable">
, <td></td>
. PHP будет использоваться для получения данных из базы данных. Массив PHP из (i, j) пар строк-столбцов будет проходить по циклу и выводиться в операторы javascript (jquery).
Это может быть излишним для ваших нужд, но должно быть дополнено некоторыми возможностями расширения.