Как отображать данные в div с текстовыми полями только один раз, получая только уникальные данные из таблицы? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь отобразить некоторые данные в 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

1 Ответ

0 голосов
/ 08 января 2019

Каждый штрих-код связан с элементом размером 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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...