繁体   English   中英

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

[英]MySQL multiple joins - how do i display the data? (using PHP)

好吧,我知道这是愚蠢的,但我被困住了,我需要一个头脑。 我有3个表(订单,订单,产品),我在查询中使用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_items中为每个产品显示一行,但我似乎无法显示(回显)字段orders.order_amount中保存的总金额,我认为它与字段有多个这一事实有关实例或任何。 如何连接多个表后显示数据?

编辑Quassnoi:

我遍历结果并为每一个创建一个表行,在循环之后,我想显示一般总计:

  <? 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.order_amount将在每一行重复,只需取第一行。

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

oi.orderitems_ordercode = '".$_GET['ordercode']."'` 

没有mysql_real_escape_string

<? 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>

只是一个FYI,这部分声明:

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

orderitemsordersproducts获取所有东西。 使用您想要所有字段的表前缀* ,或重写它以获取特定字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM