【问题标题】:produce same result in in foreach loop在 foreach 循环中产生相同的结果
【发布时间】:2017-04-29 12:01:09
【问题描述】:

您好,我正在尝试获取与 foreach 循环产生的值相等的每个数据的 num 行,这是我的 samp 代码

$query = $this->db->query("SELECT * FROM tblsamp");
  foreach ($query->result() as $row){

      $subquery = $this->db->query("SELECT * FROM other_table WHERE foo like  '%$row->some_col%'");

        echo $subquery->num_rows();
        // Ill get the num rows here equal on the value of $row->som_col
}

这是示例输出,您可以将数据可视化”

name    |     NoRows
name1   |       6
name2   |       6
name3   |       6
name4   |       6

问题是如果 name1 检测到 name2、name3、name4 的“6”行。以此类推也会输出'6'行,即每个名字的行数不同。

为什么我得到与 name1 相同的结果?

希望各位大神解答!谢谢!

【问题讨论】:

  • 您应该使用JOINGROUP BY 来在一次查询数据库中获取所有结果。
  • 不做join有什么办法吗?
  • 是的,您正在做的是另一种可能的方式,但是当一个查询和几行代码做得更好时,为什么要执行潜在的数百个查询并编写大量代码?
  • 也许作为初学者你不会使用join,因为你不熟悉它,但最好探索你还不知道的东西

标签: php mysql html codeigniter


【解决方案1】:

你为什么不使用组和计数请求?

select t.name, count(*) 
from tblsamp t 
left join other_table on foo like concat('%',t.some_col,'%')
group by t.name

【讨论】:

    猜你喜欢
    • 2020-01-11
    • 2022-11-22
    • 2017-09-11
    • 2011-12-03
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    相关资源
    最近更新 更多