Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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 从多个表中选择并显示到表中_Php_Mysql_Sql_Select_Join - Fatal编程技术网

Php 从多个表中选择并显示到表中

Php 从多个表中选择并显示到表中,php,mysql,sql,select,join,Php,Mysql,Sql,Select,Join,我对这一切都不熟悉 这是我原来的问题,, 我有两个名为order和order\u items order_id--pupil_id --date_bought--total_price 1 ----1001---- 2013-03-07 23:35:49 - 1.00 及 我想显示购买日期和总价。这将是一种join语句,其中包含使用最新订单id购买的产品,该订单id将由瞳孔id选择,该瞳孔id可能由desc在语句中订购 我不知道如何把它拼凑起来。关于如何实现这一点,有什么想法或线索吗 在

我对这一切都不熟悉

这是我原来的问题,, 我有两个名为
order
order\u items

order_id--pupil_id --date_bought--total_price

1  ----1001---- 2013-03-07 23:35:49 - 1.00

我想显示购买日期和总价。这将是一种join语句,其中包含使用最新订单id购买的产品,该订单id将由瞳孔id选择,该瞳孔id可能由desc在语句中订购

我不知道如何把它拼凑起来。关于如何实现这一点,有什么想法或线索吗


在史蒂夫·钱伯斯创造我的那一刻,我得到了这个:

$query = mysql_query("SELECT *
FROM `order` o
JOIN `order_items` oi
ON o.order_id = oi.order_id
ORDER BY o.order_id DESC");

$query_assoc = mysql_fetch_array($query);

echo $query_assoc['product_name'];

echo $query_assoc['date_bought'];

echo $query_assoc['total_price'];

这是一个测试,看看它是否有效。它确实显示了与学生id关联的最后一个订单id行,但我如何检索所有行并将它们放入表中?

您实际上在这里问了两个问题:

  • 我想显示购买日期和总价
  • 如何检索所有行并将它们放入表中
  • 要获得一个共同的价格,您可以通过将表连接在一起从数据库中获得,您已经这样做了,但是要获得一个总和以获得总价格,您需要将项目组合在一起。您将需要如下查询:

    SELECT o.order_id, o.pupil_id, o.date_bought, SUM(o.total_price) AS total_price FROM order o
    LEFT JOIN order_items oi
      ON oi.order_id = o.order_id
    GROUP BY o.order_id
    

    如果要将结果列表放在表格中,则需要循环遍历已有的结果集,并将其写入HTML表格中。

    尝试使用
    内部联接和
    按顺序分组\u id
    SELECT o.order_id, o.pupil_id, o.date_bought, SUM(o.total_price) AS total_price FROM order o
    LEFT JOIN order_items oi
      ON oi.order_id = o.order_id
    GROUP BY o.order_id