L oop для массива, созданного значениями, разделенными запятыми в mysql запросе, получающем только первый результат - PullRequest
0 голосов
/ 04 мая 2020

Я сохранил некоторые значения в виде запятой в столбце таблицы 1.

Я хочу получить все строки, содержащие значения из таблицы 2, где эти значения разделены запятыми.

Но мой текущий код выбирает только одну строку с первым значением.

Структура таблиц выглядит следующим образом:

Таблица 1

id   |  faculties           | another_field
1    |  DFGHFGD1,ERTGDFGE2  | xyzxyzxyz

Таблица 2

id   |  unique_id   | full_name
1    |  DFGHFGD1    | AAA AAA
2    |  THOGHFGD1   | BBB BBB
3    |  ERTGDFGE2   | CCC CCC
4    |  LLMNBHUH1   | DDD DDD
5    |  HGFGDHHD3   | EEE EEE
6    |  RGDJHFGN4   | FFF FFF
7    |  PLYHTGGD1   | HHH HHH

Теперь я хочу получить обе строки с unique_id = DFGHFGD1 и ERTGDFGE2 в таблице 2.

Я попробовал следующий код. Но он выбирает только строку с первым значением (DFGHFGD1).

 <?php 
        $faculty ="DFGHFGD1,ERTGDFGE2"; // Fetch with another query for table 1
        $var = explode(",", $faculty );
        ?>
          <ol>
           <?php
             foreach($var as  $value){
             $fquery = "select * from table_2 where unique_id = '$value'";          
             $result = $database->get_results($fquery);
                foreach($result as $data){
            ?> 
                <li><?php echo $data['full_name'];?></li>
            <?php }  ?>
          </ol>
  <?php } ?>

Результат должен выглядеть следующим образом:

  1. AAA AAA
  2. CCC CCC

Но я получаю только

  1. AAA AAA

1 Ответ

0 голосов
/ 04 мая 2020

<ol> Метка будет за пределами первого foreach l oop.

Правильный код будет:

<?php 
$faculty ="DFGHFGD1,ERTGDFGE2";
$var = explode(",", $faculty);
?>
<ol>
<?php
foreach($var as $value) {
  $fquery = "select * from `table_2` where `unique_id` = '$value'"; 
  $result = $database->get_results($fquery);
  foreach($result as $data){ ?>
    <li><?php echo $data['full_name']; ?></li>
  <?php 
  } 
}
?></ol>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...