0

由于功课,我正在建立一个简单的报纸网站。我的数据库中有两个表。

类别 [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='                 
                    }
                }

}
4

2 回答 2

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
于 2013-05-07T23:43:07.623 回答
0

您的查询应该是这样的:

SELECT 
         a.*,c.* 
FROM 
         Article a LEFT JOIN 
         Categories c on (a.category=c.categoryid) 
ORDER BY 
         a.Date DESC
于 2013-05-07T23:45:41.290 回答