簡體   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