2013-05-13 55 views
0

我希望在給每行顯示唯一ID的同時在我的視圖中顯示數據庫查詢的結果。顯示數據庫數組行,同時每行自動增加id

我的模式是:

function get_load_lines($ordernumber) 
{ 
    $this->db->select('product,pricepercube,qty,linecost,linediscount,cubicvolume,bundles,treated,autospread'); 
    $this->db->from('Customer_Order_Lines'); 
    $this->db->where('CustomerOrderID',$ordernumber); 
    $q = $this->db->get(); 
    if($q->num_rows() > 0) 
    { 
     return $q->row_array(); 
    } 
} 

我的控制器:

function edit_order_lines() 
{ 
    $data = array(
     'ordernumber' =>$this->input->post('ordernumber'), 
     'customer' =>$this->input->post('customer'), 
     'loadlines' => $this->sales_model->get_load_lines($this->input->post('ordernumber')) 
    ); 

    $this->load->view('sales/edit_order_lines',$data); 
} 

如前所述我想在視圖中顯示的每一列中。

所以我在我看來,使用此代碼:

<table> 
<?php 
$i=1; 
foreach ($loadlines as $row) 
{ 
    echo "<tr>"; 
    echo "<td>".$i."</td>"; 
    echo "<td>".$row['product']."</td>"; 
    echo "<td>".$row['pricepercube']."</td>"; 
    echo "<td>".$row['qty']."</td>"; 
    echo "</tr>"; 
    $i++; 
} 
?> 
</table> 

這不會有預期的結果。每個數組條目的增量爲$i,而不是每個數組行。

有關顯示此數據的最佳方式的任何建議?

所以,如果3行以下要求:

enter image description here

回答

2

在你的模型,試圖返回result_array,而不是row_array

return $q->result_array(); 

如果不止一個結果存在,結果數組將返回所有的結果,而排陣只會返回一個。 CodeIgniter的user guide explains the differences

你也可以讓你的在點點整潔環,通過增加$i這樣的:

$i=1; 
foreach ($loadlines as $row) 
{ 
    echo "<tr>"; 
    echo "<td>".$i++."</td>"; 
    echo "<td>".$row['product']."</td>"; 
    echo "<td>".$row['pricepercube']."</td>"; 
    echo "<td>".$row['qty']."</td>"; 
    echo "</tr>"; 
} 
+0

冠軍,完美的作品。欣賞你的時間和知識! – Smudger 2013-05-13 13:22:00

+0

沒問題。很高興我能幫上忙! – jleft 2013-05-13 13:23:49

1

我不知道我理解你的問題清楚了,但爲了編輯客戶訂單行(訂單詳細信息),你也應該拉查詢數據庫時每個Customer_Order_Lines的ID。 (假設您的表Customer_Order_Lines具有主鍵字段,稱爲ID)。

$this->db->select('id,product,pricepercube,q...'); 

然後,當你遍歷結果,這樣做:

foreach ($loadlines as $row) 
      { 
echo "<tr>"; 
echo "<td>".$row['id']."</td>"; 
echo "<td>".$row['product']."</td>"; 
echo "<td>".$row['pricepercube']."</td>"; 
echo "<td>".$row['qty']."</td>"; 
echo "</tr>"; 
$i++; 
      } 

這會給你各個訂單的具體唯一ID的(主鍵)。然後,您可以通過參考此ID更新每個訂單行。

如果我誤解了你的問題,請告訴我。

+0

感謝馬爾科,完美的作品,但是我需要糾正的'返回$ Q-> result_array() ;'以及'Lefters'的回答。感謝您的時間... – Smudger 2013-05-13 13:21:42

+0

我很高興您能及時找到答案。乾杯! – 2013-05-14 06:45:06

相關問題