Получение значений по отдельности вместо совместного использования внутри цикла foreach - PullRequest
0 голосов
/ 22 мая 2018

Здесь у меня есть две таблицы, пожалуйста, посмотрите

enter image description here

enter image description here

первыйВ таблице department есть данные об отделе, а во второй таблице locations есть данные о местоположении. Для того, чтобы получить соответствующие значения location_id, отличные от номеров, которые я дал моему коду, подобный этому

<?php
$no = 1;
foreach ($detail as $s) {
    foreach ($locations as $location) {
        if (!empty($s->location_id)) {
            $loc = explode(',', $s->location_id);
            $loca = array();

            foreach ($loc as $lo) {
                if ($lo == $location->id) {
                    $loca[] = $location->location_name;
                    var_dump($loca);
                }
            }
        }
    }
    ?>
    <tr>
        <td><?php echo $no++; ?></td>
        <td><?php echo $loca; ?></td>   

    </tr>
<?php } ?>

Используя этокод получает мой результат, как это enter image description here

я хочу, чтобы мой результат был таким enter image description here

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Помимо того, что вы должны использовать соответствующие функции БД для этого - это должно работать.

foreach ($detail as $s)
{
    $arrData = [];
    foreach ($locations as $location)
    {
        if (!empty($s->location_id))
        {
            if (in_array($location->id, explode(',',$s->location_id)))
            {
                $arrData[] = $location->location_name;
            }
        }
    }

    if (!empty($arrData))    $s->Location = implode(', ', $arrData);
}
print_r($detail);
0 голосов
/ 22 мая 2018

Решение в том, что вам нужно создать третью joins таблицу.Ваш location_id не очень удобен для базы данных, потому что он должен обрабатывать каждый элемент в поле.Представьте, если вам нужно добавить еще один элемент в поле location_id?Это становится трудным.

Вам нужно создать таблицу примерно так:

DepartmentID/LocationID

Тогда вы сможете использовать более качественный запрос для получения нужных вам данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...