Short
Генерация таблицы со штрих-кодами предметов. Каждое изделие имеет точное количество в таблице базы данных. Поля в таблицах ограничены: 65, если больше 65, то построить вторую таблицу, а затем третью ... Как генерировать таблицы с этими условиями?
Подробное
Допустим, мы хотим сгенерировать таблицу с 65 доступными полями (5x13).
Мой план следующий
- Пользователь выбирает чекбоксы элементов
- Когда пользователь отправляет форму, PHP получает значения отмеченных флажков
- PHP получает количество каждого элемента из базы данных
- Генераторный стол
Например количество для элемента с идентификатором 55 равно 2, а для 56 - 4, тогда таблица должна выглядеть следующим образом
Мой код выглядит так (я знаю, что это неправильно, но я не могу понять, как это должно быть. Должно быть более 5 счетчиков: счетчик строк, счетчик столбцов, счетчик $ _POST ['id'], счетчик количества товаров, счетчик таблицы (если общая сумма превышает 65)
UPDATE
<?php
$items = array();
foreach ($_POST['checkbox'] as $id) {
$stmt = $db->prepare("SELECT `qt` FROM `items` WHERE `id`=?");
$stmt->bind_param('i', $id);
$stmt->execute();
$stmt->bind_result($qt);
$stmt->fetch();
$stmt->close();
for ($cnt = 1; $cnt <= $qt; $cnt++)
$items[] = $id;
}
$i = 0;
foreach ($items as $item) {
for ($j = 0; $j < $item['quantity']; $j++) {
// check if it's the beginning of a new table
if ($i % 65 == 0)
echo '<table>';
// check if it's the beginning of a new row
if ($i % 5 == 0)
echo '<tr>';
echo '<td><img src="bc.php?id=' . $item['id'] . '" alt="' . $item['name'] . '" /></td>';
// check if it's the end of a row
if (($i - 1) % 5 == 0)
echo '</tr>';
// check if it's the end of a table
if (($i - 1) % 65 == 0)
echo '</tr></table>';
$i++;
}
}
// if the last row wasn't closed, close it
if ($i % 5 != 0)
echo '</tr>';
// if the last table wasn't closed, close it
if ($i % 65 != 0)
echo '</table>';
?>
Есть предложения?