2017-01-07 1 views
2

Добрый день. Теперь я пытаюсь создать детали из таблицы sql.Foreach внутри foreach, чем показать его в HTML-таблице

Вот мой PHP: -

public function export() 
    { 
     $query = $this->input->cookie("cookie_invent_query"); 
     $data['header'] = $this->modelmodel->showdata($query); 
     foreach($data['header'] as $header){ 
      $data['detail'][] = $this->modelmodel->showdata("select * from DeliveryOrderDetail 
                  where deliveryordertransno = '".$header->TransactionNo."' "); 
     } 
     echo "<pre>"; print_r($data['detail']); 
     $this->load->view("do_mutasi/export",$data); 
    } 

с моим сценарием выше я получаю ТИС в print_r()

результата от $data['header']

Array 
    (
     [0] => stdClass Object 
      (
       [FinalReleaseStatus] => 1 
       [DeliveryOrderDate] => 2016-12-21 17:25:18.487 
       [TransactionNo] => DO-DL-K-LFKG-11 
       [DocumentNo] => DOZZ-DL-K-LFKG-6 
       [ToCustomerCode] => AFF004 
       [CategoryCode] => ZZ 
       [ETADate] => 2016-12-21 17:25:18.487 
      ) 

    ) 

результата от $ данных [ 'подробнее']

Array 
(
    [0] => Array 
     (
      [0] => stdClass Object 
       (
        [TransactionNo] => DOD-DL-K-LFKG-9 
        [LineNo] => 1000 
        [ItemCode] => FA00000111 
        [DeliveryOrderTransNo] => DO-DL-K-LFKG-11 
        [ExtraRemark] => 0 
        [ExtraRemark2] => 0 
        [Quantity] => 3.00000000000000000000 
        [UOMCode] => PCS 
        [CreatedDate] => 2016-12-21 17:26:25.063 
        [CreatedBy] => boby 
        [ModifiedDate] => 2016-12-21 17:26:25.063 
        [ModifiedBy] => 
       ) 

     ) 

) 

затем после того как я отправить его на мой взгляд, и это то, что я могу сделать сейчас

<?php foreach($header as $hdr) { ?> 
Header 
    <table class="table"> 
     <thead> 
      <tr> 
       <th>Trnsaction No</th> 
       <th>Document No</th> 
       <th>To Customer</th> 
       <th>Delivery Order Date</th> 
      </tr> 
     </thead> 
     <tbody> 
      <td><?=$hdr->TransactionNo;?></td> 
      <td><?=$hdr->DocumentNo;?></td> 
      <td><?=$hdr->ToCustomerCode;?></td> 
      <td><?=$hdr->DeliveryOrderDate;?></td> 
     </tbody> 
    </table> 
Detail 
<table> 
    <thead> 
     <tr> 
      <th>Transaction No</th> 
      <th>Item Code</th> 
      <th>Quntity</th> 
      <th>Uom Code</th> 
     </tr> 
    </thead> 
    <tbody> 
    <?php 

    foreach($detail as $rsltdt =>$key) { ?> 
     <tr> 
      <td><?=$rsltdt['TransactionNo'];?></td> 
      <td><?=$rsltdt['ItemCode'];?></td> 
      <td><?=$rsltdt['Quantity'];?></td> 
      <td><?=$rsltdt['UOMCode'];?></td> 
     </tr> 
    <?php } ?> 
    </tbody> 
</table> 

<?php } ?> 

СМСОА может видеть. Я петлю detail внутри цикла header. Потому что в некоторых records есть несколько деталей. Я петля заголовок, потому что я хочу показать, что множественный records не только один record

вот результат до сих пор

enter image description here

Я не могу показать подробно. Так что мой вопрос. Как я могу показать детали, зависит от заголовка.

[TransactionNo] = [DeliveryOrderTransNo]

+1

'Еогеасп ($ подробно $ rsltdt) {Еогеасп ($ rsltdt в $ RSL) {> ? TransactionNo;? Код товара;?> Количество;?> UOMCode?> ' –

ответ

1

Проверить один раз: -

foreach($detail as $rsltdt) { 
    foreach ($rsltdt as $rsl){ ?> 
    <tr> 
     <td><?=$rsl->TransactionNo;?></td> 
     <td><?=$rsl->ItemCode;?></td> 
     <td><?=$rsl->Quantity;?></td> 
     <td><?=$rsl->UOMCode;?></td> 
    </tr> 
<?php } } ?> 
+0

Рад помочь вам. приветствия :) :) –

1

Лучше поместить все детали в соответствующем заголовке:

public function export() 
    { 
     $query = $this->input->cookie("cookie_invent_query"); 
     $data['header'] = $this->modelmodel->showdata($query); 
     foreach($data['header'] as $header){ 
      $data['header']['details'] = $this->modelmodel->showdata("select * from DeliveryOrderDetail 
                  where deliveryordertransno = '".$header->TransactionNo."' "); 
     } 
    } 

, то вы можете просто написать второй цикл:

foreach($hdr['details'] as $rsltdt) { ?> 
    <tr> 
     <td><?=$rsltdt->TransactionNo;?></td> 
     <td><?=$rsltdt->ItemCode;?></td> 
     <td><?=$rsltdt->Quantity;?></td> 
     <td><?=$rsltdt->UOMCode;?></td> 
    </tr> 
<?php } ?> 

Вам не нужно больше гнездятся в массиве деталей:

положить:

$data['header']['details'] = $this->modelmodel->showdata("select * f.... 

вместо:

$data['header']['details'][] = $this->modelmodel->showdata("select * f.... 
+0

Я получаю эту ошибку' Не удается использовать объект типа StdClass в array' – YVS1102

+0

В какой строке вы получаете эту ошибку? –

+0

@ YVS1102 Обновлен ответ, попробуйте! –

 Смежные вопросы

  • Нет связанных вопросов^_^