2013-10-24 82 views
1

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

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); 

} 
+0

僅供參考,您的代碼很容易受到SQL注入,它是使用過時的MySQL擴展。我建議你切換到MySQLi或PDO。如果你不這樣做,至少使用'mysql_real_escape_string()'來轉義$ _GET輸入變量。 – ComFreek

+0

沒有解決您的問題,但您應該使用MySQL PDO而不是那些棄用的mysql_函數。 – codepushr

+0

http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/爲什麼你需要PDO和如何使用它 – csi

回答

0

我相信你要找的是一個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 to prevent SQL injection
2)檢查你的數據庫表的設置。瞭解database relations

0

不是在你的方法上的不安全感評論,但回答這個問題,你可以這樣做在一個查詢

$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); 
+0

我已經嘗試過,但沒有顯示所有類別。它只顯示那些具有子類別的類別。我需要顯示所有類別的天氣,它有或沒有。 – user2907907

相關問題