1

我正在尝试使用 DISTINCT 从我的数据库中的列中获取城市列表。

function cityData() {
    $db =& JFactory::getDBO();
    $query = "SELECT DISTINCT MSTCITY FROM " . $db->nameQuote('#__mls') . " ORDER BY MSTCITY;";
    $db->setQuery($query);
    $tbl = $db->loadObjectList();
    return $tbl;
}

有类似的东西loadObjectList()我可以使用吗?

4

2 回答 2

2

有几个选项可用于使用数据库对象获取数据。您可以查看此链接 - http://docs.joomla.org/Accessing_the_database_using_JDatabase/1.5

在您的情况下,您可以使用loadResultArray()它来代替。loadObjectList它将城市列表作为数组的值返回。

于 2013-01-02T20:30:21.703 回答
2

这是 2.5 和 3.x 版的修订版 joomla 资源页面 使用 JDatabase 选择数据。另外,由于您已经在使用loadObjectList()函数,因此最好将这个问题问为

如何一起使用 DISTINCT 和 JDatabase

这篇文章由Janga_Jack提供了一个很好的解决方案,但对于您的示例,这里有一个 Joomla 3.x 方法来完成您需要的,它允许您使用方便的方法quote()or q()quoteName()or qn(),尤其是escape()or e()

function cityData() {
    $db =& JFactory::getDBO();
    $query = $db->getQuery(true);

    $fieldlist = $db->qn(array('mls.MSTCITY')); // add the field names to an array
    $fieldlist[0] = 'distinct ' . $fieldlist[0]; //prepend the distinct keyword to the first field name  

    $query->select($fieldlist);
        ->from($db->qn('#__mls', 'mls'))
        ->order($db->qn('mls.MSTCITY'));

    $db->setQuery($query);
    $tbl = $db->loadObjectList();
    return $tbl;
}
于 2015-09-30T17:18:05.150 回答