Я пытаюсь отобразить некоторые данные в div с 3 полями, получая только уникальные значения из таблицы. Используемый запрос отлично работает в pgAdmin3, но при попытке отобразить его на странице отображаются несколько блоков div на основе данных, отсканированных на предыдущей странице.
Поскольку это массив, я использую foreach для отображения, и по этой причине создается несколько div, и я не знаю, как отображать данные из массива без использования цикла.
Получение данных отсканированных на предыдущей странице
$strings = explode(PHP_EOL,trim($_SESSION['grid']));
Отображение данных в div с использованием foreach на основе числа штрих-кодов, отсканированных на предыдущей странице
foreach ($strings as $d){
$sql = "select distinct size from items where main_group IN(select distinct
main_group from items where addl_item_code_barcode IN ('$d')) ORDER BY
size";
$result = pg_query($db, $sql);
$res = pg_fetch_assoc($result);
?>
<div class = "col-sm show-hide">
<input type = "text" value = "<?php echo $res['size']; ?> " readonly
style = "background-color: #F5F5F5;" class = "form-control"><br>
<input class = "form-control" type = "text" name = "n2" id = "n2"/><br>
<select class = "form-control">
<option>25%</option>
<option>50%</option>
<option>100%</option>
</select><br>
</div>
<?php }?>
Я отсканировал 2 штрих-кода на предыдущей странице, у которых такое же значение «36» в поле «размер». Поскольку сканировалось 2 данных, цикл запускался дважды и дважды отображался. Как мне отобразить это только один раз.
Вот как теперь выглядит страница. https://ibb.co/qDh425j
Неа. У меня такой же результат.






Каждый штрих-код связан с товаром размером «36».
Вам нужно проверить, есть ли ошибка при вводе данных. если предполагается, что каждый штрих-код однозначно соответствует определенному размеру, вам необходимо исправить данные в своей базе данных.
В противном случае вам нужно решить, что делать со штрих-кодами, которые соответствуют элементу того же размера.
Наконец, вы, вероятно, можете объединить запрос, чтобы вам не понадобился цикл для каждого штрих-кода. что-то вроде этого
$sa = [];
foreach ($strings as $s) {
//add single quotes
array_push($sa, "'".$s."'");
}
//recreate string with coma
$d=implode(',', $sa);
$sql = "select distinct size from items where main_group IN(select distinct
main_group from items where addl_item_code_barcode IN ('$d')) ORDER BY
size";
Извините, но вы можете мне сказать, что $ sa = []; является?
предложению 'IN' в SQL нужны ваши штрих-коды в форме, ('bar1', 'bar2'). Итак, я создал массив $ sa и вставил в него процитированные штрих-коды, позже я рекомбинирую, используя implode, чтобы предоставить список, разделенный запятыми. цитируемых штрих-кодов, которые затем передаются в ваш запрос
Вставить
foreachв<div>не получилось?