[英]PHP / MYSQL Do I Need to SQL Join?
我知道這可能是一個愚蠢的問題,但是我對SQL Join的經驗不是很豐富,並且在不完全知道這是正確的事情的情況下我不想這樣做。
我創建了一個食譜站點,該站點具有不同的類別,例如面包,餅干,蛋糕等。這些都在數據庫的類別表中。 我在食譜表中有食譜。
我面臨的問題是,在類別頁面上,因為每個類別都有自己的ID,所以我創建了一個頁面,每個類別都重定向到該頁面並使用了此代碼
<a href="index.php?p=selected&id=<?php echo $recipe['cat_id']; ?>">
此頁面根據ID具有不同的類別,在URL中更改了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是類別表的一部分,因此我需要將該表加入配方表以使其起作用嗎?
一定要告訴我我是否錯過任何事情,
感謝您的時間。
是的,您錯過了一些事情,當您在食譜表中添加項目時,必須在食譜表中添加列cat_id等於類別表中的cat_id,然后再簡單
$query = "SELECT * FROM recipes
WHERE recipes.cat_id = :id";
要么
$id = intval($_GET['id']);
$query = "SELECT * FROM recipes
WHERE recipes.cat_id = $id";
如果一個食譜屬於一種類別,
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";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.