[英]Fetching data from two mysql tables and showing it with php is showing incorrect order
我有兩個結構如下表
發票表格
我想把這兩個表的數據展示到前端的兩個表。 以invoice_id
和customer_name
形成替代表,按invoice_id
排序。
兩個表之間的聯系是參考號,更接近的是amount_paid
和subtotal
我有以下代碼:
$payment_reference = '71584705';
$get_transaction_data = mysqli_query($link, "SELECT * FROM transactions WHERE reference_no ='$payment_reference' ORDER BY id ASC" ) or die(mysqli_error($link));
$get_transaction_data_two = mysqli_query($link, "SELECT * FROM transactions WHERE reference_no = '$payment_reference' ORDER BY subtotal ASC" ) or die(mysqli_error($link));
$get_invoice_data_details = mysqli_query($link, "SELECT * FROM invoicesq WHERE payment_payout_reference = '$payment_reference' ORDER BY invoice_id ASC");
$get_transaction_data_one = mysqli_query($link, "SELECT * FROM transactions WHERE reference_no = '$payment_reference'") or die(mysqli_error($link));
$get_invoice_data_one = mysqli_query($link, "SELECT * FROM invoicesq WHERE payment_payout_reference = '$payment_reference' ORDER BY invoice_id ASC");
$transaction_details = mysqli_fetch_array($get_transaction_data_two);
?>
<strong>Correct PaySheet summary</strong>
<table>
<thead>
<th>Invoice</th>
<th>Customer</th>
<th>Sub Total</th>
<th>Tax</th>
<th>Holdback</th>
<th>Total Paid</th>
</thead>
<tbody>
<?php while($show_invoice_data = mysqli_fetch_array($get_invoice_data_details)){
$get_transaction = mysqli_fetch_array($get_transaction_data_one)
?>
<tr>
<td><?php echo $show_invoice_data['invoice_id'];?></td>
<td><?php echo $get_transaction['customer_name'];?></td>
<td><?php echo $show_invoice_data['amount'];?></td>
<td><?php echo $show_invoice_data['tax'];?></td>
<td><?php echo $get_transaction['holdback'];?></td>
<td><?php echo $show_invoice_data['amount_paid'];?></td>
</tr>
<?php } ?>
</tbody>
</table>
<h3><h4>Pay Sheet Summary</h4></h3>
<table>
<thead>
<th>Invoice ID</th>
<th>Customer Name</th>
<th>Amount</th>
<th>Amount Paid</th>
<th>Tax</th>
</thead>
<tbody>
<?php
while($show_transactions_data = mysqli_fetch_array($get_transaction_data)) {
$print_invoice = mysqli_fetch_array($get_invoice_data_one);
?>
<tr>
<td><?php echo $print_invoice['invoice_id'];?></td>
<td><?php echo $show_transactions_data['customer_name'];?></td>
<td><?php echo $show_transactions_data['subtotal'];?></td>
<td><?php echo $show_transactions_data['total'];?></td>
<td><?php echo $show_transactions_data['tax'];?></td>
</tr>
<?php }
?>
</tbody>
</table>
請幫我改正。 提前致謝
嘗試使用單個查詢進行選擇
$get_transaction_data_two = mysqli_query($link, "SELECT * FROM transactions INNER JOIN invoicesq ON payment_payout_reference = reference_no WHERE reference_no = '$payment_reference' ORDER BY subtotal ASC" ) or die(mysqli_error($link));
$transaction_details = mysqli_fetch_array($get_transaction_data_two);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.