-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を共有し、各テーブルのすべての列を1つの配列として返すすべてのテーブル間でJOINクエリを実行できます。 http://www.w3schools.com/sql/sql_join.asp

于 2011-10-25T19:15:54.500 に答える
1

最善の方法は、多くの異なるクエリ(製品ごとに1つ)を実行するのではなく、データベースに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 に答える