我有一个存储出版物的数据库: 出版物ID,作者(考虑优先权)和出版物标题
我遇到了第二个foreach的问题,因为我需要一个循环来生成作者的名字,然后再转到标题。查询将使结果很好:
PID作者TITLE
1 NAME1 TITLE1
1 NAME2 TITLE1
1 NAME3 TITLE1
2 NAME1 TITLE2
2 NAME2 TITLE2
2 NAME3 TITLE2
等等
我希望最终结果是:
1 NAME1,NAME2,NAME3 TITLE1
2 NAME1,NAME2,NAME3 TITLE2
这是我的代码:
foreach ($query->result() as $row)
{
echo $row->PID;
echo ": ";
foreach ($query->result() as $row)
{
echo $row->AUTHORS;
echo ", ";
}
echo $row->TITLE;
echo "<br>" . "<br>";
}
答案 0 :(得分:0)
您在两个查询中都使用了$ query-&gt; result(),试试这个
foreach ($query->result() as $row)
{
echo $row->PID."</span>";
echo ": ";
echo implode(', ', $row->authors);
echo $row->TITLE</span>;
echo "<br>" . "<br>";
}
答案 1 :(得分:0)
从数据库中检索数据而不是使用两个for循环时,可以使用GROUP_CONCAT()函数。例如,您可以使用
SELECT PID,GROUP_CONCAT(DISTINCT Authors SEPARATOR&#39;,&#39;),TITLE1 FROM FROM GROUP BY PID;