0

各行に一意の 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 行の場合は以下が必要です。

ここに画像の説明を入力

4

2 に答える 2

2

result_arrayあなたのモデルでは、 ではなく を返してみてくださいrow_array:

return $q->result_array();

複数の結果が存在する場合、結果配列はすべての結果を返しますが、行配列は 1 つだけを返します。CodeIgniter のユーザー ガイドでは、違いについて説明しています

次のようにインクリメントすることで、 for ループを少し整理することもできます。$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>";
} 
于 2013-05-13T13:14:49.647 に答える
1

あなたの質問を明確に理解しているかどうかはわかりませんが、Customer Order Line (注文の詳細) を編集するには、データベースにクエリを実行するときに各 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 を参照して各 Order Line を更新できます。

あなたの質問を誤解した場合はお知らせください。

于 2013-05-13T13:10:54.817 に答える