Codeigniter检查另一列中是否存在一个列项

时间:2017-05-19 17:08:41

标签: php codeigniter

我一直在试图弄清楚如何检查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;
    }
}

可以吗?请帮助我......提前致谢....

1 个答案:

答案 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

的文档