0

次のクエリがあり、正常に動作しています。クエリが表示された場合、 という変数があることに気付くでしょう。$code私はこのようにその値を手動で設定していました。$code="1001";

function check1() { 

$code="1001";

 $getData = $this->db->query("SELECT * FROM vouchers 
 LEFT JOIN  details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN   accounts on accounts.code = vouchers.account_code 
WHERE (voucher_type='1' AND t_code=$code)

 UNION ALL

SELECT * FROM vouchers 
LEFT JOIN details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN   accounts on accounts.code = details.t_code 
 WHERE (voucher_type='0' AND account_code=$code)

 ");

       if($getData->num_rows() > 0)
        return $getData->result_array();
        else
        return null;
}

ビュー ファイルに結果を表示するときは、次のスクリプトを使用します。

  <?php if(count($records) > 0) { ?>

  <?php $i = $this->uri->segment(3) + 0; foreach ($records as $row){ $i++; ?>

  <?php echo $row['voucher_date']; ?>  
  <?php echo $row['name']; ?> 
  <?php echo $row['amount']; ?>    <br>

<?php  } ?>

<?php } else { echo "No Record Found";} ?>

<?php 
$sum = 0;
foreach ( $records as $row ) {
 $sum += str_replace(",", "", $row['amount']);
}
?> 

  Total: <?php  echo  number_format( $sum, 2 );?>

今私がしたいのは$code、次の mysql テーブルから の値を取得し、そのすべての値の結果を取得することです。これにより、ビュー ファイルに結果を表示すると、$code="1001"のみではなく$code="1002"、の結果も表示されます$code="1003"

取得したいものを達成するには、上記の mysql クエリを変更する必要があります。しかし、その方法がわかりません。親切に教えてください。

前もって感謝します:)

テーブル名: アカウント

code   name 
1001    Cash Account
1002    Advertising Expense
1003    Accounts Receivable
4

1 に答える 1

0
SELECT * FROM vouchers 
 LEFT JOIN  details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN   accounts on accounts.code = vouchers.account_code 
WHERE voucher_type='1' AND t_code IN (SELECT * FROM code_table)

 UNION ALL

SELECT * FROM vouchers 
LEFT JOIN details on vouchers.voucher_no = details.voucher_no 
LEFT JOIN   accounts on accounts.code = details.t_code 
 WHERE voucher_type='0' AND account_code IN (SELECT * FROM code_table)
于 2012-04-08T15:03:21.813 に答える