在php,mysql中显示父类别页面上子类别的产品

时间:2015-12-23 11:40:14

标签: php mysql

我在获取父类别页面上的产品时遇到问题。 我的数据库表结构:

父类别:

id -catname 
1 - Mobiles & Tablets
2 - Compuetrs

子类别:

id cid sub_name
1   1   Mobiles
2   1  Tablets
3   2  Desktops
4   2  Laptops

产品表结构:我的产品表是多个并基于子类别。示例:平板电脑产品位于平板电脑表格下,手机产品位于手机表格下。产品根据其子类别存储在不同的表中。

id  cid  sub_id product_name
1   1      1     Lenovo latest mobile
2   2      3     Dell Monitor

现在我想从父类别页面上的表格(手机,平板电脑,台式机,笔记本电脑)中获取产品。我尝试使用union,但是一次只有一个表在查询中获取。谁能提出一些建议。提前谢谢。

<?php  
if(isset($_GET)) {
    $cid = $_GET['id'];     
    if($cid == 1){ 
        $tablename = "mobiles"; 
    }
    if($cid == 2){ 
        $tablename = "computers"; 
    }
    $results=mysql_query("SELECT * FROM $tablename WHERE cid = '$cid'");
    while($rows=mysql_fetch_array($results)){
        // code 
    }
}

1 个答案:

答案 0 :(得分:3)

循环查询降低了性能,您始终可以通过仅查询数据库一次来连接表并获取数据,

尝试,

SELECT products.product_name, parent_category.catname
FROM products
JOIN parent_category ON products.cid = parent_category.id

连接也适用于多个表,假设您想要获取类别和子类别,

尝试,

SELECT products.product_name, parent_category.catname, sub_category.sub_name
FROM products
JOIN parent_category ON products.cid = parent_category.id
JOIN sub_category ON products.sub_id = sub_category.id

有关加入的更多信息:here