[英]How to display data only once by using two different tables in codeigniter
我正在准備注冊從日期到至今的輸入...顯示用戶從日期和至今所做的條目...我想顯示憑證編號、賬單日期、數量、金額(出現在購買賬單表中)和產品名稱(存在於purchaseitem 表中)我想根據帳單在同一行打印產品名稱..(為此我使用組連接)...我的問題是所有數據都顯示多次..我不知道我的代碼中的錯誤在哪里..必須對我的代碼進行哪些更改才能僅顯示一次數據..下面我附上了我的代碼..幫幫我
控制器代碼:
$this->db->where('date >=', $newDate);
$this->db->where('date <=', $newDate2);
$this->db->select('*');
$this->db->from('purchasebill');
$this->db->order_by("voucherno", "asc");
$this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
$this->db->select('GROUP_CONCAT(Prdtname)as itemname',false);
$this->db->order_by('vno','asc');
$this->db->group_by('vno,billno');
$this->db->from('purchaseitem');
$query = $this->db->get('')->result_array();
$data ['query']= $query;
查看代碼:
<?php $rowcount = 1 ?>
<?php foreach ($query as $row): ?>
<tr>
<td><?=$rowcount;?></td>
<td><?=$row['voucherno'];?></td>
<td><?=$row['date'];?></td>
<td><?=$row['PName'];?></td>
<td><?=$row['sqty'];?></td>
<td><?=$row['billtot'];?></td>
<td><?=$row['itemname'];?></td>
<?php $rowcount +=1?>
<br>
<?php endforeach ?>
</tr>
我認為數據打印多次,因為我使用了兩個查詢,但傳遞了相同的變量 $data..是否有可能在同一視圖頁面上加載多個查詢結果..???
$this->db->where('date >=', $newDate);
$this->db->where('date <=', $newDate2);
$this->db->select('purchasebill.*,GROUP_CONCAT(parmaster.Prdtname)as itemname');
$this->db->from('purchasebill');
$this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
$this->db->order_by('vno','asc');
$this->db->group_by('vno,billno');
$query = $this->db->get()->result_array();
$data ['query']= $query;
是的,您可以執行不同的查詢並將它們分別傳遞給視圖:
$this->db->select('*');
$this->db->from('purchasebill');
$this->db->where('date >=', $newDate);
$this->db->where('date <=', $newDate2);
$this->db->order_by("voucherno", "asc");
$this->db->join('parmaster','parmaster.Pcode = purchasebill.partyname','left outer');
$query1 = $this->db->get()->result_array();
$this->db->select('GROUP_CONCAT(Prdtname) AS itemname',false);
$this->db->order_by('vno','asc');
$this->db->group_by('vno,billno');
$this->db->from('purchaseitem');
$query2 = $this->db->get()->result_array();
$data['bills']= $query1;
$data['items']= $query2;
$this->load->view('your_view_path', $data);
然后在您的視圖中,您可以訪問$bills
和$items
的數據。 我的建議是,您可以隨意創建一個查詢,以獲取您的所有信息。
這是我的控制器:-
public function order_info()
{
$this->load->model('customize_model');
$data['user'] = $this->customize_model->order_info();
$data['product']=$this->customize_model->order_info();
$data['sale'] = $this->customize_model->order_info();
$this->load->view('custom/order',$data);
}
這是我的模態:-
public function order_info()
{
$query = $this->db->query("SELECT *
FROM user
JOIN product
ON user.user_id = product.product_id
JOIN sale
ON user.user_id = sale.buyer
ORDER BY user_id DESC LIMIT 100;
");
return $query;
}
這是視圖:-
<?php foreach($sale->result() as $row)
{
$order_id = $row->sale_id;
$grand_total = $row->grand_total;
$status = $row->status;
?>
<tr>
<td><?php echo $order_id;?></td>
<td><?php echo $username;?></td>
<td><?php echo $productname?></td>
<td><?php echo $grand_total;?></td>
<td><?php echo $status;?></td>
</tr>
<?php
foreach($user->result() as $row1)
{
$username = $row1->username;
foreach($product->result() as $row2)
{
$productname = $row2->title;
}
}
}
?>
在我看來,我被困在單個表中顯示記錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.