簡體   English   中英

PHP / MYSQL是否需要SQL加入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM