лучший способ получить данные из нескольких таблиц MySQL с помощью PHP - PullRequest
0 голосов
/ 25 октября 2011

Нужно получить данные из нескольких таблиц -таблица содержит все детали продукта и идентификатор продукта -таблица два имеет дополнительные детали, связанные с идентификатором продукта

каков наилучший способ получить данные из всех таблиц и, возможно, сохранить их в одном массиве или, в лучшем случае, в отдельных массивах, но одинаковой длины

если я получу данные из таблицы 1, используя

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

Должен ли я просто просмотреть данные [$ i] ['product_id'], запросить снова и сохранить в новом массиве? * 1008 например *

   $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'];
   }

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Лучшим способом было бы позволить базе данных обрабатывать один большой запрос вместо выполнения множества разных запросов (по одному на каждый продукт):

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

Извлечь это в массив, как вы делаете, иты в порядке.

1 голос
/ 25 октября 2011

Поскольку таблицы совместно используют поле product_id, вы можете выполнить запрос JOIN между всеми таблицами, которые имеют этот идентификатор и возвращают все столбцы из каждой таблицы в виде одного массива.http://www.w3schools.com/sql/sql_join.asp

...