Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将3个数据库表连接在一起_Php - Fatal编程技术网

在PHP中将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[] =

我有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[] = $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个。