Дополнить таблицу html пустыми ячейками.

Runapa

Постоялец
Регистрация
30 Окт 2010
Сообщения
63
Реакции
5
Собственно вопрос такой. Из базы данных я вставляю значения в таблицу html. Но при вставке у меня не все ячейки получаются заполнены. То есть в таблице визуально есть пропуски - ячейки не отображаются, так как <td> не генерируются там где нет значений. Как можно сделать так, чтобы таблица была полностью заполнена ячейками ? Понятно что надо сгенерировать пары <td></td>. Но вот как объяснить интерпретатору, сколько и куда генерировать, понять не могу.
 
Собственно вопрос такой. Из базы данных я вставляю значения в таблицу html. Но при вставке у меня не все ячейки получаются заполнены. То есть в таблице визуально есть пропуски - ячейки не отображаются, так как <td> не генерируются там где нет значений. Как можно сделать так, чтобы таблица была полностью заполнена ячейками ? Понятно что надо сгенерировать пары <td></td>. Но вот как объяснить интерпретатору, сколько и куда генерировать, понять не могу.
фиксированная ширина колонок, как вариант. или пустые заменять на &nbsp;
 
<?php
//запрос в бд, получаем массив с данными
?>
...
<table>
<?php foreach($array as $val:( ?>
<tr>
<td width="15%"><?=$val['id']?></td>
<td width="50%"><?=$val['name']?></td>
<td width="35%"><?=$val['date']?></td>
</tr>
<?php endforeach; ?>
</table>
...
 
Последнее редактирование:
Собственно вопрос такой. Из базы данных я вставляю значения в таблицу html. Но при вставке у меня не все ячейки получаются заполнены. То есть в таблице визуально есть пропуски - ячейки не отображаются, так как <td> не генерируются там где нет значений. Как можно сделать так, чтобы таблица была полностью заполнена ячейками ? Понятно что надо сгенерировать пары <td></td>. Но вот как объяснить интерпретатору, сколько и куда генерировать, понять не могу.
Смотря как ты генерируешь таблицу, если например у тебя идут столбцы (первый, второй, третий) то выводи строку со значением из бд следующим образом <td>$row['one']</td><td>$row['two']</td><td>$row['three']</td>
 
Ну для примера, получается как-то так, а надо чтобы было полностью
 

Вложения

  • example.png
    example.png
    148,9 KB · Просмотры: 9
Вобщем сделал так:

Запускаю дополнительно цикл, чтобы в нем получить максимальное количество выводимых <td> в одном ряду. Потом от этого числа вывожу уже саму таблицу в основном цикле.
Вот тут у меня возник вопрос, а можно ли как-то такой код:
PHP:
   $res = array_count_values($res);
   $max = max($res);

запустить внутри цикла ? А то у меня не получилось, всё время данные накладываются =(
 
Последнее редактирование:
было бы неплохо увидеть полностью этот кусок кода что-бы понять что происходит.
но в любом случае да, если количество колонок динамическое то нужно знать заранее максимальную величину перед выводом таблицы.

не совсем понятен смысл кода выше, array_count_values - возвращает количество уникальных значений в массиве и частоту их появления, max - наибольшее значение.
нам если я все правильно понял нужно просто найти массив с максимальным количеством элементов, это можно сделать как-то так:

PHP:
$max = 0;
foreach(... as $res) {
   if(count($res) > $max) $max = count($res);
}
 
Назад
Сверху