簡體   English   中英

如何顯示數據庫中的類別和子類別

[英]how to show categories and subcategories from database

我需要從兩個表中獲取數據,一個是類別表,第二個是子類別表。 我在子類別表中保存類別表的主鍵。 現在我需要從表中感染數組。 首先,我想顯示類別名稱及其子類別,然后顯示第二類別及其子類別。 這是我獲取類別和子類別列表的代碼。

include("admin/common/connection.php");
$userId= $_GET['user'];

if(isset($userId)) 
{
$select="select category_name,id from tbl_category where user_id='".$userId."'";
$query= mysql_query($select);
$var= array();
while($fetch_row= mysql_fetch_array($query))
{
  $cat_dish= $fetch_row['category_name'];

  $var['category'] = $cat_dish;
  $select_dish="select dish_photo,printer_location,printer_list,kitchen_display from tbl_category_dish where user_id='".$userId."' and cat_id='".$fetch_row['id']."'";
  $query_dish= mysql_query($select_dish);
  while($row= mysql_fetch_array($query_dish))
  {

    $var['dish_photo']= $row['dish_photo'];
    $var['printer_location']= $row['printer_location'];

  }

}
print_r($var);

}

我相信您正在尋找的是JOIN語句。 下面的語句將替換您的兩個查詢,而僅使用此查詢。

SELECT cd.dish_photo,cd.printer_location,cd.printer_list,cd.kitchen_display,   
    cat.category_name, cat.id   
FROM tbl_category_dish AS cd  
LEFT JOIN tbl_category AS cat ON cd.cat_id = cat.id 
WHERE cd.user_id = '".$userId."'

這些項目還可以幫助您學習和發展技能。
1)如上所述,嘗試使用PDO防止SQL注入
2)檢查數據庫表的設置。 了解數據庫關系

不評論您的方法中的不安全性,而是回答問題,您可以在一個查詢中執行此操作

$sql="select 
    a.category_name,
    a.id,
    b.dish_photo,
    b.printer_location,
    b.printer_list,
    b.kitchen_display 
    from tbl_category a, 
    tbl_category_dish 
    where user_id='" . $userid . "' 
    and b.cat_id=a.id";
while($row=mysql_fetch_array($sql)){
    if(!isset($var[$row["category_name"]])){
        $var[$row["category_name"]]=array();
    }
    $var[$row["category_name"]][]=$row;
}
print_r($var);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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