我一直在试图弄清楚如何检查Codeigniter中另一列中是否存在任何一列的项....
我在桌子1的列(车辆)中有自行车,汽车,公共汽车...... 我还在表2中的列(感兴趣)中有公共汽车,直升机,船舶,汽车。
如何检查table1车辆列中是否有任何table2感兴趣的列项目...
我试过这样......
$query = $this->db->get('table2');
foreach($query->result() as $row)
{
$a = explode(',', $row->interested);
$this->db->where_in('Vehicles', $a);
$query = $this->db->get('table1');
foreach($query->result() as $row2)
{
echo $row2->ID;
}
}
可以吗?请帮助我......提前致谢....
答案 0 :(得分:2)
如果没有看到表格以及如何将这些表格相互关联(例如user_id),很难帮助您。
你应该做的是两个查询。一个查询从表1中获取您感兴趣的车辆的数据。然后运行结果集并在php中创建这些车辆的简单数组。然后使用where_in执行第二次查询,以选择所选车辆阵列中的所有行。
您的方法很糟糕,因为db查询的数量取决于第一个查询的结果集的大小。您可能会发现您的代码尝试进行数百次数据库查询。
如果您显示表格的图表,我可以为您编写一些示例代码。
以下是where_in:https://www.codeigniter.com/user_guide/database/query_builder.html#CI_DB_query_builder::where_in
的文档