我正在尝试从公司表中显示公司名称,然后从另一个表中循环出新闻。两个表连接在一起。这意味着:我想从连接中的一个表中挑出一行,并从连接中的另一个表中循环出数据。这可能吗?我的代码下面只显示循环中新闻表中三个帖子中的两个。
谢谢!
$sql = "SELECT
newID, newTitle, newSummary, newDate,
comID, comName, comImageThumb
FROM
tblNews a RIGHT JOIN tblCompanies b
ON a.newCompanyID = b.comID
ORDER BY newDate DESC";
// Get company name and display
$companyData = mysql_fetch_assoc($result);
$comName = $companyData['comName'];
echo "<a href='#' class='name'>$comName</a>";
// Looping news
while($news = mysql_fetch_assoc($result)) {
// Display news posts
$newTitle = $news['newTitle'];
echo $newTitle;
}
答案 0 :(得分:0)
将所有内容放入循环中并尝试:
while($news = mysql_fetch_assoc($result)) {
// Get company name and display
$comName = $news ['comName'];
echo "<a href='#' class='name'>$comName</a>";
// Looping news
// Display news posts
$newTitle[] = $news['newTitle'];
echo $newTitle;
}
答案 1 :(得分:0)
您应该查看mysql GROUP_CONCAT
以获取更多详细信息。
答案 2 :(得分:0)
最简单的解决方案可能是跟踪您是否处于第一次迭代中:
// query company name and news entries here
$firstRow = true;
while($news = mysql_fetch_assoc($result)) {
if ($firstRow) { echo $news['comName']; }
$firstRow = false;
echo $news['newTitle'];
}
您还可以保留当前代码,并在首先提取公司名称后使用mysql_data_seek(0)
重置光标。
并注意:不要再使用mysql_*
功能了!请改用PDO。
答案 3 :(得分:0)
将获取操作移动到循环的结尾:
$companyData = mysql_fetch_assoc($result);
$comName = $companyData['comName'];
echo "<a href='#' class='name'>$comName</a>";
// you've already fetched a news item....
$news=$companyData;
do {
$newTitle = $news['newTitle'];
echo $newTitle;
} while ($news=mysql_fetch_assoc($result));