MySQL多连接-如何显示数据?(使用PHP)

MySQL多连接-如何显示数据?(使用PHP),php,mysql,join,Php,Mysql,Join,好吧,我知道这很愚蠢,但我被卡住了,我需要一记重击。 我有3个表orders、orderitems、products,我在查询中使用了2个左外部联接来显示客户部分中的订单历史记录: SELECT * FROM orderitems oi, orders o LEFT OUTER JOIN product p ON p.dbarcode = oi.orderitems_item WHERE o.order_code = oi.orderitems_ordercode AND oi.ord

好吧,我知道这很愚蠢,但我被卡住了,我需要一记重击。 我有3个表orders、orderitems、products,我在查询中使用了2个左外部联接来显示客户部分中的订单历史记录:

SELECT * FROM orderitems oi, orders o
LEFT OUTER JOIN product p ON p.dbarcode = oi.orderitems_item
WHERE o.order_code = oi.orderitems_ordercode 
    AND oi.orderitems_ordercode = '".$_GET['ordercode']."'` 
我可以在表order\u items中为每个产品显示一行,但我似乎无法显示字段orders中保存的总金额。order\u amount,我认为这与该字段有多个实例或其他情况有关。如何显示多个表合并后的数据

为准SNOI编辑:

我循环查看结果,并为每个结果创建一个表行,循环后,我想显示总的总数:

  <? do { ?>
  <tr>
    <td><? echo $row_OrderItems['dbarcode']; ?></td>
    <td><? echo $row_OrderItems['name']; ?></td>
    <td><? echo $row_OrderItems['orderitems_quantity']; ?></td>
    <td><? echo $row_OrderItems['price']; ?></td>
  </tr>
  <? } while ($row_OrderItems = mysql_fetch_assoc($OrderItems)); ?>

  <tr>
    <td colspan="5">Total order amount (incl. shipping and handling): &euro; <? echo $row_OrderItems['order_amounteuro']; ?></td>
  </tr>
o、 订单金额将在每一行重复,仅取第一行

当然,永远不要使用这个:

oi.orderitems_ordercode = '".$_GET['ordercode']."'` 
没有mysql\u real\u escape\u字符串

o、 订单金额将在每一行重复,仅取第一行

当然,永远不要使用这个:

oi.orderitems_ordercode = '".$_GET['ordercode']."'` 
没有mysql\u real\u escape\u字符串


仅供参考,您声明的这一部分:

SELECT * FROM orderitems oi, orders o 
LEFT OUTER JOIN product p ON p.dbarcode = oi.orderitems_item

正在获取订单项、订单和产品的所有内容。在*前面加上所有字段的表前缀,或者重写它以获取特定字段。

仅供参考,语句的这一部分:

SELECT * FROM orderitems oi, orders o 
LEFT OUTER JOIN product p ON p.dbarcode = oi.orderitems_item
<? do { ?>
  <tr>
    <td><? echo $row_OrderItems['dbarcode']; ?></td>
    <td><? echo $row_OrderItems['name']; ?></td>
    <td><? echo $row_OrderItems['orderitems_quantity']; ?></td>
    <td><? echo $row_OrderItems['price']; ?></td>
  </tr>
  <? 
$total = $row_OrderItems['order_amounteuro']; // store the total, before you loop past the last row
} while ($row_OrderItems = mysql_fetch_assoc($OrderItems)); ?>

  <tr>
    <td colspan="5">Total order amount (incl. shipping and handling): &euro; <? echo $total; ?></td>
  </tr>

正在获取订单项、订单和产品的所有内容。在*前面加上您希望所有字段的表格前缀,或者重写它以获取特定字段。

是否在“选择帮助”中将o.order\U amount添加为order\U amount?您需要在while循环结束之前存储总计。是的,我意识到无法显示总计的原因是因为它在循环之外,但是我需要在那里显示它,而不是在重复区域内。有什么想法吗?请看下面我的答案,我更新了它,会在“选择帮助”中将o.order\U amount添加为order\U amount?您需要在while循环结束之前存储总数。是的,我意识到我无法显示总数的原因是因为它在循环之外,但我需要在那里显示它,而不是在重复区域内。有什么想法吗?看我下面的答案,我更新了是的,我确实对输入进行了消毒,我只是用上面的例子!不过我还是很喜欢这部漫画但忘了问,如何仅显示第一个实例?如果我只是回显字段,即回显$row\u orderinfo'order\u amout',它不会显示任何内容,尽管数据已被提取,但我可以通过打印看到它_r@bikey77:请将您的代码示例作为原始post的更新发布是的,我确实对输入进行了清理,我只是以上面的示例为例!不过我还是很喜欢这部漫画但忘了问,如何仅显示第一个实例?如果我只是回显字段,即回显$row\u orderinfo'order\u amout',它不会显示任何内容,尽管数据已被提取,但我可以通过打印看到它_r@bikey77:请发布您的代码示例,作为对原始帖子的更新。我了解您的观点,但不了解条件和oi.orderitems\u ordercode='.$\u get['ordercode']“做这项工作,然后从数据库中提取特定记录?我明白你的意思,但不知道条件和oi.orderitems\u ordercode=”。$\u get['ordercode']”做这项工作,然后从数据库中提取特定记录?是的,我有,我正在使用print\r,我可以正确地看到所有数据。是的,我有,我正在使用print\r,可以正确查看所有数据。
<? do { ?>
  <tr>
    <td><? echo $row_OrderItems['dbarcode']; ?></td>
    <td><? echo $row_OrderItems['name']; ?></td>
    <td><? echo $row_OrderItems['orderitems_quantity']; ?></td>
    <td><? echo $row_OrderItems['price']; ?></td>
  </tr>
  <? 
$total = $row_OrderItems['order_amounteuro']; // store the total, before you loop past the last row
} while ($row_OrderItems = mysql_fetch_assoc($OrderItems)); ?>

  <tr>
    <td colspan="5">Total order amount (incl. shipping and handling): &euro; <? echo $total; ?></td>
  </tr>