[英]How to show all data from multiple table using sql JOIN query?
我有以下Mysql表:
1)產品
2)product_images
3)product_date_time
4)product_menu
5)Chef_profile
我需要將所有數據從這5張表顯示到名為menu-details.php的頁面
所有表都具有作為products
表ID的p_id
的foreign key
,而某些表具有相同p_id
多個數據。
為了做到這一點,我正在使用以下mysql join查詢:
$query = mysqli_query($conn, "SELECT p.p_id, p.p_title, p.p_description,
p.p_price, p.p_availability, p.delivery_option, p.event_location,
pimg.p_large_image, pimg.p_small_image, pdt.date, pm.p_menu_title,
pm.p_menu_description, pm.p_menu_price, pm.p_menu_availability, chef.fname,
chef.lname, chef.chef_details FROM products as p LEFT JOIN product_images as
pimg ON p.p_id = pimg.p_id LEFT JOIN product_date_time as pdt ON pdt.p_id =
p.p_id LEFT JOIN product_menu as pm ON pm.p_id = p.p_id LEFT JOIN
chef_profile AS chef ON chef.u_id = p.u_id WHERE p.p_id = '$mid' ") or
die('wrong query');
為了顯示數據,我正在使用以下php代碼:
$result = mysqli_fetch_array($query);
$menu_title = htmlspecialchars($result['p_title']);
我的問題
我應該使用5個唯一的sql查詢將數據顯示到該menu_details.php頁面嗎?
現在,此查詢顯示的是來自那些表的單個記錄,該記錄具有多個具有相同p_id
數據。 我需要顯示具有相同p_id
和多個數據的所有數據。 我怎樣才能做到這一點 ?
例如: product_images
表中有以下數據:
pimg_id p_large_image p_id u_id 1 name 203 25 1 name 204 26 1 name 204 25 1 name 205 27 1 name 205 28
因此,如果我使用php while
循環,它將顯示該表中的所有數據,但是應該基於p_id
顯示所有數據,例如p_id
= 204
while($result = mysqli_fetch_array($query)) {
echo $menu_l_image = htmlspecialchars($result['p_large_image']);
echo '<br/>';
}
如果p.id是整數,則刪除單引號形式$ mid
"SELECT
p.p_id,
p.p_title,
p.p_description,
p.p_price,
p.p_availability,
p.delivery_option,
p.event_location,
pimg.p_large_image,
pimg.p_small_image,
pdt.date,
pm.p_menu_title,
pm.p_menu_description,
pm.p_menu_price,
pm.p_menu_availability,
chef.fname,
chef.lname,
chef.chef_details
FROM products as p
LEFT JOIN product_images as pimg ON p.p_id = pimg.p_id
LEFT JOIN product_date_time as pdt ON pdt.p_id = p.p_id
LEFT JOIN product_menu as pm ON pm.p_id = p.p_id
LEFT JOIN chef_profile AS chef ON chef.u_id = p.u_id
WHERE p.p_id = $mid "
previus對可以使用的$ mid var進行適當的消毒
"SELECT
p.p_id,
p.p_title,
p.p_description,
p.p_price,
p.p_availability,
p.delivery_option,
p.event_location,
pimg.p_large_image,
pimg.p_small_image,
pdt.date,
pm.p_menu_title,
pm.p_menu_description,
pm.p_menu_price,
pm.p_menu_availability,
chef.fname,
chef.lname,
chef.chef_details
FROM products as p
LEFT JOIN product_images as pimg ON p.p_id = pimg.p_id
LEFT JOIN product_date_time as pdt ON pdt.p_id = p.p_id
LEFT JOIN product_menu as pm ON pm.p_id = p.p_id
LEFT JOIN chef_profile AS chef ON chef.u_id = p.u_id
WHERE p.p_id = ". $mid . ";"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.