我在获取父类别页面上的产品时遇到问题。 我的数据库表结构:
父类别:
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
}
}
答案 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