1

DISTINCT を使用して、DB の列から都市のリストを取得しようとしています。

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 Selecting data using JDatabaseの改訂された joomla リソース ページは次のとおりです。また、すでに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 に答える