我有一个包含以下数据的MySQL表:
User | Status
------|-------
Bob | online
Mike | online
Karen | offline
Joe | online
有没有办法形成如下所示的查询,以便我找回所有在线用户的列表?
$query= "SELECT User FROM User_table WHERE Status='online'";
$db->setQuery($query);
$userlist=$db->loadresult();
答案 0 :(得分:0)
我假设您正在使用Joomla,因为我在jDatabase文档中找到了函数$db->setQuery()
和$db->loadResult()
。
在这种情况下,请注意$db->loadResult()仅返回第一个结果(也是特定列)。
您必须循环才能获得所有记录:
$userlist = array();
$query= "SELECT User FROM User_table WHERE Status='online'";
$db->setQuery($query);
$results = $db->loadObjectList();
foreach ($results as $row) {
$userlist[] = $row->User;
}
答案 1 :(得分:0)
$ db-> loadResult()只加载一条记录。要获得另一条记录,只需再次调用即可。
参考:http://docs.joomla.org/J1.5:Accessing_the_database_using_JDatabase
这些结果函数中的每一个都将从中返回单个记录 数据库,即使可能有几个记录符合 您设置的标准。要获得更多记录,您需要拨打电话 再次发挥作用。
或者您可以使用$db->loadRowList()
来返回索引数组的索引数组,即查询的所有行和列。