Пытаюсь сделать, чтобы в столбце "Изображения" все имеющиеся миниатюры выводились в той же строке, что и заявка, пока что какой-то загадочной причине каждое изображение выводится в новой строке, то есть в заявке будет 5 изображений значит будет 5 строк, что делаю не так? PHP: echo "<table border='1' style='margin-top: 50px;'> <tr> <th style='width: 100px'>Магазин</th> <th>Проблема</th> <th style='width: 150px'>Дата заявки</th> <th style='width: 100px'>Контакт</th> <th style='width: 150px'>Изображение</th> <th style='width: 100px'>Действие</th> </tr>"; while ($row = $result->fetch()) { echo "<tr style='border-color: black;'>"; echo "<td>" . $row["name"] . "</td>"; echo "<td>" . $row["problem"] . "</td>"; echo "<td>" . $row["data"] . "</td>"; echo "<td>" . $row["contacts"] . "</td>"; echo "<td>"; echo "<div>"; $images = explode(",", $row["image"]); foreach ($images as $image) { echo "<a href='uploads/" . $image . "' target='_blank'><img src='uploads/" . $image . "' style='display: inline-block; width:30px; height:30px; margin-right: 5px;'/></a>"; } echo "</div>"; echo "</td>"; echo "<td><a href='arhive_do_1.php?id=" . $row["id_ticket"] . "'><input type='submit' name='submit' value='Архивировать'></form></td>"; echo "</tr>";
ситуацию это не исправило, все равно выводит в разных строках PHP: while ($row = $result->fetch()) { echo "<tr style='border-color: black;'>"; echo "<td>" . $row["name"] . "</td>"; echo "<td>" . $row["problem"] . "</td>"; echo "<td>" . $row["data"] . "</td>"; echo "<td>" . $row["contacts"] . "</td>"; echo "<td>"; $images = explode(",", $row["image"]); $image_html = ""; foreach ($images as $image) { $image_html .= "<a href='uploads/" . $image . "' target='_blank'><img src='uploads/" . $image . "' style='display: inline-block; width:30px; height:30px; margin-right: 5px;'/></a>"; } echo "<div>" . $image_html . "</div>"; echo "</td>"; echo "<td><a href='arhive_do_1.php?id=" . $row["id_ticket"] . "'><input type='submit' name='submit' value='Архивировать'></form></td>"; echo "</tr>"; }
а что с ним может быть не так? по сути я же ему говорю куда и что показать в данном случае, он это и делает
да откуда нам знать что - вы покажите получившийся html и картинку - как это отображается например display: inline-block
5 картинок с разрешением 30х30 пикселей никак не влезут в блок из-за margin-right: 5px;, как минимум. Во-вторых, скорее всего, на смещение и/или размер влияют css стили. Попробуй смоделировать в отдельном файле поочередно подключая все стили, что в оригинале.
вот в таком виде выходят изображения, одна заявка, для каждой картинки своя строка создается вот что выводи сайт
есть некие подозрения в неверной выборке данных ну и возможно в структуре БД ))) вы как каждую картинку храните - в отдельной таблице? что в поле image находится?
туда формируется рандомное имя PHP: if (is_uploaded_file($tmp_name)) { $filename = basename($_FILES['files']['name'][$key]); $extension = pathinfo($filename, PATHINFO_EXTENSION); $basename = bin2hex(random_bytes(8)) . '.' . $extension; $query = "INSERT INTO images (id_ticket, imgname, image) VALUES (?, ?, ?)"; $statement = $pdo->prepare($query); } каждое изображение привязывается к id_ticket, у каждого изображение свой id_img
ну очень все странно.... записывает вроде в отдельную таблицу.... а зачем же при выводе берете из какго-то поля основной таблицы? разбиваете по explode Код (Text): $images = explode(",", $row["image"]); посмотрите что у вас в $images .... похоже там всегда одна картинка.. .а вы ждете кучу
@lamac0, заодно уберите загрывающий форму тег там, где value='Архивировать'></form></td> В начале цикла сделайте var_dump($row); И поделитесь результатом --- Добавлено --- В "песочнице" можете сделать "срез" базы данных и запрос, которым получаете записи для заявки. Очень похоже, что просто группировки не хватает.
PHP: $sql = "SELECT tickets.id_ticket, shop.id_shop, shop.name, tickets.problem, tickets.arhive, tickets.contacts, tickets.data, images.image FROM shop JOIN tickets ON shop.id_shop = tickets.id_shop AND tickets.arhive = 0 JOIN images ON tickets.id_ticket = images.id_ticket"; тег убрал, ничего не поменялось, а должно ли было? выглядит вот так
Поменялось. Ошибок в структуре html стало меньше. Текстом, пожалуйста. В блоке кода. --- Добавлено --- @lamac0, а в запросе действительно не хватает группировки по id магазина и заявки + разложения "изображений" в строку с разделителем "запятая". Раз уж в коде разбираете именно такую строку "изображений". --- Добавлено --- @lamac0, или можете отслеживать в цикле по $row изменение id заявки и добавлять в ячейку изображение вместо формирования строки. (т.к. судя по #12 id заявки "сквозной" для всех магазинов)