在PHP中将3个数据库表连接在一起
我有3个数据库表需要从中获取信息。我需要的信息是缩进的在PHP中将3个数据库表连接在一起,php,Php,我有3个数据库表需要从中获取信息。我需要的信息是缩进的 --products --product_image --order_options --option_value --order_products --product_id 现在我有以下代码 foreach ($db->query("SELECT * FROM products WHERE product_id= $product_id") as $row) order_product[] =
--products
--product_image
--order_options
--option_value
--order_products
--product_id
现在我有以下代码
foreach ($db->query("SELECT * FROM products WHERE product_id= $product_id") as $row)
order_product[] = $row;
foreach ($db->query("SELECT * FROM order_options WHERE order_id= $order_id") as $row)
order_size[] = $row;
foreach ($db->query("SELECT * FROM order_products WHERE order_id= $order_id") as $row)
order_source[] = $row;
(该order\u id
来自脚本前面的$order\u id=$\u GET['id'];
)
我想把所有三个select语句放在一个查询中。我见过这样做,但从未真正理解我发现的任何东西(即,我理解我观看的内容,并设法将上面的内容改为下面的内容):
foreach ($db->query("SELECT * FROM [order_products] as opro INNER JOIN order_options as oopt ON opro.order_id = oopt.order_id") as $row)
$order_variables[] = $row;
尽管运行此命令时,我收到以下错误:
Warning: Invalid argument supplied for foreach() in /home/www/libraries/phppwinty/print.php on line 35
那么,如何在这些
3
表之间成功地JOIN
像这样的事情应该行得通。想法:按产品id连接产品,按订单id连接订单选项与指定id上的订单产品:
SELECT orderproducts.product_id, orderoptions.option_value, products.product_image
FROM order_products as orderproducts
INNER JOIN order_options as orderoptions ON orderproducts.order_id = orderoptions.order_id
INNER JOIN products as products ON orderproducts.product_id = products.product_id
WHERE
orderproducts.order_id = $order_id AND
orderproducts.product_id = $product_id
我创建了一个JSFIDLE:我将您的代码放入脚本中,但仍然收到相同的错误?此查询已经获取了产品标识、选项值和产品图像。您只需要一个查询调用,而不是3个。