如何使用joomla从数据库中查询数据

从单表中查询数据


下面是使用JDatabaseQuery类创建数据库查询的示例。使用selectfromwhereorder方法,我们可以创建灵活,易于阅读和可移植的查询。代码如下:

// 得到数据库对象
$db = JFactory::getDbo();

// 创建一个新的查询对象
$query = $db->getQuery(true);

// 查询内容
$query->select($db->quoteName(array('id', 'name', 'age')));
$query->from($db->quoteName('#__zmaxuser')); 
$query->where('age >25'); $query->order('age ASC'); //设置排序 // 将查询对象设置到数据库 $db->setQuery($query); // 执行查询,以对象数组的方法返回结果 $results = $db->loadObjectList();

使用链式操作


JDatabaseQuery对象支持链式操作,可以对上面的代码进行简化:

// 查询内容
$query->select($db->quoteName(array('id', 'name', 'age')))->from($db->quoteName('#__zmaxuser'))->where('age>25')->order('age ASC'); 

使用group分组


使用group方法可以方便的实现分组,下面的查询用来统计每一个分类中的文章数据,代码如下:

$query
    ->select(array('catid', 'COUNT(*)'))
    ->from($db->quoteName('#__content'))
    ->group($db->quoteName('catid'));

使用setLimit设置返回数量


使用setLimit方法设置返回结果的数量。返回前10行结果。代码如下:

$query
    ->select($db->quoteName(array('id', 'name', 'age')))
    ->from($db->quoteName('#__zmaxuser'))
    ->setLimit('10');