【发布时间】:2020-05-04 22:03:01
【问题描述】:
我已将一些值保存为表 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
现在我想获取表 2 中 unique_id = DFGHFGD1 和 ERTGDFGE2 的两行。
我尝试了以下代码。但它只获取第一个值(DFGHGFD1)行。
<?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 } ?>
结果应该是这样的
- AAA AAA
- CCC CCC
但我只是得到了
- AAA AAA
【问题讨论】:
-
"我已将一些值保存为表 1 列中的逗号分隔。" - 大错!阅读"Is storing a delimited list in a database column really that bad?" 并规范化架构。
-
你确定
</ol>是在正确的位置,它应该在foreach()循环之外吗? -
@stickybit 我应该用逗号将表 1 中的值保存在单独的 mysql 表中吗?
-
@NigelRen 我改变了
- 和
-
@darshan:没错。