Лучший способ получить данные из нескольких таблиц MySQL с помощью PHP
Необходимость извлечения данных из нескольких таблиц. В одной таблице содержатся все данные о продукте, а в таблице product_id - во второй таблице содержатся дополнительные сведения, связанные с идентификатором продукта.
Каков наилучший способ получить данные из всех таблиц и, возможно, сохранить их в одном массиве или, в лучшем случае, в отдельных массивах, но одинаковой длины
если я получу данные из таблицы 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'] и запросить снова и сохранить в новом массиве? например
$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 ответа
Лучшим способом было бы позволить базе данных обрабатывать один большой запрос вместо выполнения множества разных запросов (по одному на каждый продукт):
SELECT product_id,model,name,barcode
FROM product
JOIN product_descp
ON product.product_id = product_descp.product_id
Получите это в массив, как вы делаете, и все в порядке.
Поскольку таблицы разделяют product_id
В этом поле вы можете выполнить запрос JOIN между всеми таблицами, которые имеют этот идентификатор и возвращают все столбцы из каждой таблицы в виде одного массива. http://www.w3schools.com/sql/sql_join.asp