-1

需要从几个表中获取数据 - 表 1 包含所有产品详细信息,而 product_id - 表 2 具有额外详细信息,与 product_id 相关联

从所有表中获取数据并将它们存储在同一个数组中的最佳方法是什么,或者最好是单独的数组但长度相同

如果我使用从表 1 中获取数据

 $result = mysql_query("SELECT product_id,model,name,barcode FROM product");  
 $data = array();
 while($row = mysql_fetch_assoc($result))
 {
  $data[] = $row;
 }

我应该遍历 data[$i]['product_id'] 并再次查询并存储在新数组中吗?例如

   $data2 = array();

   for($j=0; $j<=$count; $j++){
    $id = $data[$j]['product_id'];
    $result2 = mysql_query('SELECT stuff FROM product_descp WHERE product_id = $id');
    $row2 = mysql_fetch_array($result2);
    $data2[] = $row2['stuff'];
   }
4

2 回答 2

1

由于这些表共享一个product_id字段,因此您可以在共享该 ID 的所有表之间执行 JOIN 查询,并将每个表中的所有列作为一个数组返回。 http://www.w3schools.com/sql/sql_join.asp

于 2011-10-25T19:15:54.500 回答
1

最好的方法是让数据库处理一个大查询,而不是执行许多不同的查询(每个产品一个):

SELECT product_id,model,name,barcode 
FROM product 
JOIN product_descp 
ON product.product_id = product_descp.product_id

在你做的时候把它取到一个数组中,你很好。

于 2011-10-25T19:16:32.307 回答