计算 Codeigniter 中数据库查询返回的结果数
我没有太多运气来检测 Codeigniter 中的数据库查询何时返回零结果。我已经仔细阅读了有关 PHP 计数函数的注释,但我仍然一无所知!
我从控制器调用查询/视图,如下所示:
$data['result'] = $this->search_model->do_search(set_value('name'));
$data['title'] = "Search results";
$this->load->view('search_view',$data);
视图为我生成一个结果表,好的,但是当我尝试捕获空结果时,计数始终返回 1:
我尝试过 if count(array($ result)) 和 if count($result)
那么获取计数的好方法是什么?我在我的开发笔记本电脑上使用 Fedora 13 和 PHP 5.3.3。
I am not having much luck detecting when a database query in Codeigniter returns zero results. I have had a good read of the notes on the PHP count function but am none the wiser!
I call the query/view as follows from the controller:
$data['result'] = $this->search_model->do_search(set_value('name'));
$data['title'] = "Search results";
$this->load->view('search_view',$data);
The view generates a results table for me OK, but when I try and trap an empty result, the count always returns 1:
I have tried if count(array($result))
and just if count($result)
So what's a good way to get the count? I'm using Fedora 13 with PHP 5.3.3 on my dev laptop.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
看看
$query->num_rows
(<- 可点击)。
Have a look at
$query->num_rows
(<- clickable).在模型中最好执行以下操作:
然后在控制器或视图中执行以下操作:
此过程使您能够根据结果类型对结果做出响应。如果可以检索行,则将返回一个数组,其中的项目可以通过 PHP 的 count() 函数进行计数。由于第二个块检查结果是否为空(请注意,“FALSE”被视为空),因此您不会遇到任何问题(例如,使用 foreach 循环时),并且您可以指定在没有结果的情况下要执行的操作结果。
The best thing to do in your model is the following:
Then in your controller or view you would do the following:
This process enables you to respond on the result based on the result type. If the rows could be retrieved this will return an array of which the items can be counted by PHP's count() function. Since the second block checks if the result is empty (note that "FALSE" is treated as being empty) you won't bump into any issues (e.g. when using a foreach loop) and you can specify what to do in case there were no results.
在您的视图文件上尝试
if(isset($result) && count($result))
然后在 if 语句中您可以编写当数据库中的插入时要执行的代码超过 0...祝你好运!Try
if(isset($result) && count($result))
on your view file then inside the if statement you can write the code you want to executed when the inserts in your db are more than 0...good luck!如果您将
count($result)
放在if
语句中,那么当成功时,它仅返回1
。你可以尝试
$query->num_rows()
以不同的方式。If you put
count($result)
inif
statement then when it succeds, it returns only1
.You can try
$query->num_rows()
in a different way.例如,我计数显示管理员连接和用户连接
数据库
在用户中我添加表:[状态] [int] [1]
在用户中我也有:[角色] [varchar] [255]
< strong>在登录验证()中将状态更新为1(在线)
和模型:
在logout()中将状态更新为离线
注销控制器:
注销模型:
在线计数:
控制器:
模型:
查看器< /强>
for example i count to show admins connected ans users connected
Database
in users i add table : [status] [int] [1]
in users also i have : [role] [varchar] [255]
Update statut to 1 (onligne) in login validation()
and the model :
Update status to offline in logout()
Logout controller :
Logout model :
Count Onligne :
The Controller :
The Model :
The Viewer
我正在这样做,它对我有用
控制器
模型用户
i'm dowing this and it workd for me
Controller
Model Users