我知道这可能是一个愚蠢的问题,但我对SQL Joins不是很有经验,而且我不想在不完全知道这是正确的事情的情况下这样做。
我创建了一个配方网站,它有不同的类别,如面包,饼干,蛋糕等。这些都在数据库的类别表中。我在食谱表中有食谱。
我面临的问题是,在类别页面上,因为每个类别都有自己的ID我创建了一个页面,其中每个类别重定向到并使用此代码
<a href="index.php?p=selected&id=<?php echo $recipe['cat_id']; ?>">
此页面根据ID提供不同的类别,ID在网址中更改,因此对于面包类别,它将如下所示:
的index.php P =选择&安培;?ID = 1
因此,由于每个类别都有一个页面,我希望它显示食谱,我使用了这段代码:
$query = "SELECT * FROM recipes ORDER BY recipe_id ASC";
但这会显示数据库中的每个食谱,我想要的是根据下面的类别显示食谱:
$query = "SELECT * FROM recipes WHERE cat_id = :id ORDER BY recipe_id ASC";
cat_id是类别表的一部分,所以我是否需要将此表连接到配方表才能使其正常工作?
请务必告诉我是否遗漏了某些内容,
感谢您的时间。
答案 0 :(得分:1)
$query = "SELECT * FROM recipes
WHERE recipes.cat_id = :id";
或
$id = intval($_GET['id']);
$query = "SELECT * FROM recipes
WHERE recipes.cat_id = $id";
答案 1 :(得分:0)
如果一个食谱一个类别,那么,
SELECT * FROM recipes inner join category
on category.id=recipe.cat_id
where cat_id = :id ORDER BY recipe_id ASC";
如果一个食谱很多食谱那么
SELECT * FROM recipes leftjoin category
on category.id=recipe.cat_id
where cat_id = :id ORDER BY recipe_id ASC";