由于学业,我正在建立一个简单的报纸网站。我的数据库中有两个表。
分类 [CategoryID,CategoryName,ParentID(指向cat.id)]
文章 [ArticleID,Heading,Teasertext,Content,Date,Category(CategoryID的外键)]
在第一页上我提取了最新的文章,并在每篇文章下面都有一篇文章的链接(基于index.php?name = CategoryName& parent = ParentID)。
我需要从Articles-table中的Category-info中提取有关CategoryName和ParentID的相关信息。
我坚持如何将两个查询合并为一个。我想知道你是否对如何解决它有任何想法?
这就是我得到的。
function display_articles($link)
{
$result = mysqli_query($link, "SELECT * FROM Article ORDER BY Date DESC");
if (!$result)
{
$error = 'Error fetching Articles: ' . mysqli_error($link);
exit();
}
while ($row = mysqli_fetch_array($result))
{
$Heading[] = $row['Heading'];
$Teasertext[] = $row['Teasertext'];
$Date[] = $row['Date'];
}
if (isset($Heading))
{
for ($i=0; $i<count($Heading); $i++)
{
echo '<div class="frontpage"><h2>' .htmlspecialchars($Heading[$i], ENT_QUOTES, "UTF-8"). '</h2>';
echo htmlspecialchars($Date[$i], ENT_QUOTES, "UTF-8");
echo '<p class="Teasertext"> ' .htmlspecialchars($Teasertext[$i], ENT_QUOTES, "UTF-8"). '</p></div>';
echo '<a href="index.php?name='
}
}
}
答案 0 :(得分:0)
使用联接:
SELECT
a.*, c.CategoryName, c.ParentID
FROM
Article AS a
INNER JOIN Category AS c on a.category = c.categoryId
ORDER BY a.Date DESC
答案 1 :(得分:0)
您的查询应该是这样的:
SELECT
a.*,c.*
FROM
Article a LEFT JOIN
Categories c on (a.category=c.categoryid)
ORDER BY
a.Date DESC