如何使用一个查询回显多个DB结果

时间:2015-07-01 16:09:43

标签: php mysql joomla

如果我要回复此查询的结果:

//Find membertype from community builder
$db->setQuery('Select cb_membertype From #__comprofiler Where id='.$user->id); 
$membertype = $db->loadResult(); //load the result from the query

我会用:

echo "Your member type is: $membertype";

我不想对每个变量思想使用新的查询,因为它们都在同一个表中。

我宁愿像这样运行一个查询:

//Find all 3 from one query
$db->setQuery('Select cb_membertype, cb_2015vopac, cb_2015llf 
From #__comprofiler Where id='.$user->id); 
$result = $db->loadResult(); //load the result from the query

使用单个$ result变量时,如何回显该查询中的特定字段?

1 个答案:

答案 0 :(得分:0)

首先,我要说一下应该引用你的值/列/表名。

其次,如果您想获得多个值,则需要使用loadObjectList代替loadResult

以下内容将为您完成:

$db = JFactory::getDbo();

$query = $db->getQuery(true);   
$query->select($db->quoteName(array('cb_membertype', 'cb_2015vopac', 'cb_2015llf')))
      ->from($db->quoteName('#__comprofiler'))
      ->where($db->quoteName('id') . ' = '. $db->quote($user->id));    
$db->setQuery($query);

$results = $db->loadObjectList();

foreach ($results as $result)
{
    echo $result->cb_membertype;
    echo $result->cb_2015vopac;
    echo $result->cb_2015llf;
}

所以loadObjectList给你一个对象,然后你可以使用foreach循环循环它。

希望这有帮助