【发布时间】:2013-05-02 01:48:00
【问题描述】:
由于功课,我正在建立一个简单的报纸网站。我的数据库中有两个表。
类别 [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='
}
}
}
【问题讨论】:
-
您的样本中目前只有一个查询。那么,您要结合哪两个查询?您是否阅读过任何 MySQL/SQL 文档?你知道如何使用 JOIN 吗?
-
显然我没有。我会读下去的,tnx!
-
你也可能不想养成使用
SELECT *的习惯。根据我的经验,您实际上需要查询中的所有数据列的情况很少。虽然使用SELECT *似乎是一种编写代码的简单方法,但实际上它会使您的应用程序可能处理比它需要的更多的数据,降低处理结果集的性能,并在此过程中消耗更多的内存.