选择多行并连接成一个 - 在joomla中

时间:2015-06-01 12:39:39

标签: php mysql joomla

我在选择多行并将其作为一行检索时遇到问题。问题是Joomla将来自userprofile的数据存储在名为profile_key和profile_value的两列中。我想检索名为'profile.li_vid'的列'profile_key'中的所有行,'profile.li_kre'对应于'profile_value'列,其中值为“1”。

数据库草稿

user_id | profile_key        | profile_value
475     | profile.li_vid     | "1"
475     | profile.li_kre     | "1"
475     | profile.address1   | "1"
476     | profile.li_vid     | "1"
476     | profile.li_kre     | "1"
476     | profile.address1   | "1"

代码

  $db = JFactory::getDbo(); 
    $query = $db->getQuery(true);
    $query
        ->select ($db->quoteName(array('a.id','a.name', 'b.profile_value','b.profile_key')))
        ->from ($db->quoteName('#__users','a'))
        ->where ($db->quoteName('b.profile_key') . " = " . $db->quote('profile.li%'))

        // ->where ($db->quote('profile_value') . " = \"1\" " )
        ->join('INNER', $db->quoteName('#__user_profiles','b').'ON('.$db->quoteName('a.id').'='.$db->quoteName('b.user_id').')')
        ->order($db->quoteName('a.name').'ASC')
     ;
    $db->setQuery($query);
    $rows = $db->loadObjectList();

当我在foreach循环中将它们回显到屏幕时,它们出现在我的表中的单独行中,因为代码逐行循环遍历每个查询结果。我想到了一个解决方案,我将多行连接成一个 - 但是如何? 我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

请记住:GROUP_CONCAT()默认情况下char限制为1024!