我正在开发一个网络应用程序,在一个页面上,有 3 个不同的部分,其中分别显示一些 x、y 和 z 类型的数据。
在数据库中,有一个表(用户信息),其中有 2 列(数据,类型(x,y,z))
当前设计:
在 pageLoad 上,我在控制器和模型中有 3 个不同的方法来获取数据 x、y 和 z。例如:getxdata、getydata、getzdata。
方法一:
$query= $this->db->query("SELECT *
FROM userinfo
WHERE type=x
");
方法二:
$query= $this->db->query("SELECT *
FROM userinfo
WHERE type=y
");
方法三:
$query= $this->db->query("SELECT *
FROM userinfo
WHERE type=z
");
我在单个页面上对 db 进行了 3 次调用,这可能会导致性能问题。
我正在寻找的是:
$query= $this->db->query("SELECT *
FROM userinfo
WHERE type in ('x','y','z')
");
有什么办法可以像上面的查询那样进行一次调用,然后在控制器中我可以type
使用 for 循环根据列的值过滤数据?(我需要根据数据类型在不同部分显示页面上的数据)
无论如何要在codeigniter中做到这一点?
我也欢迎关于哪种方法对性能友好的建议!
感谢帮助。
是的,您可以使用array_filter过滤 x、y 和 z 类型,例如,
$query= $this->db->query("SELECT *
FROM userinfo
WHERE type in ('x','y','z')
");
return $query->result_array();
您可以result
用来过滤您的类型字段,例如,
$xArr = array_filter($result, function($k) {
return $k['type'] == 'x'; // same for y and z
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句