我有一个产品类,当实例化时,它从“产品”表中获取数据,它还在其中创建一个“类别”对象(产品-> 类别),该对象从类别表中获取数据。我的问题是,当列出来自同一类别的多个产品时会发生什么,为了创建类别对象进行多个相等的查询,因为它们来自同一类别。如何解决这个问题?
问问题
71 次
4 回答
2
在 SQL 中使用 JOIN:
SELECT *
FROM product
LEFT JOIN category ON product.category_id = category.id;
于 2012-05-10T08:14:42.200 回答
1
使用创建对象的工厂,并为要在构造函数中传递的产品/类别的数据提供选项。工厂加载将列出的所有产品的数据,然后实例化产品对象,提供已经获取的数据
于 2012-05-10T08:17:31.217 回答
0
在循环内部执行 sql 查询不是一个好习惯。
您可以做的是将产品表与类别表左连接。
$select = SELECT *
FROM product
LEFT JOIN category ON product.category_id = category.id;
然后执行查询,然后将您的产品分类为类别基础,就像您可以运行循环一样
$result = mysql_query($select);
while($data = mysql_fetch_assoc($result)){
$product_info['product_name'] = $data['product_name'];
$product_info['price'] = $data['product_price'];
$product[$data['category']][$data['product_id']] = $product_info;
}
这个循环将发挥神奇作用,它可以帮助您对属于同一类别的产品进行分类。您可以以更有效的方式显示您的数据。
于 2012-05-10T08:28:11.063 回答