2016-03-22 25 views
0

Orada basit bir hata var gibi görünüyor, ama ben tam olarak alamıyorum.tcpdf sql sorgu sadece bir satır alma

Ben CodeIgniter'ı ve TCPDF üçüncü tarafların

İşte

sorgu sonucundan pdf dosyasını indirmek için benim denetleyicisi olduğu kullanıyorum:

$pdf_content = $this->hotel_model->get_report(); 
       foreach ($pdf_content as $rows) { 
        $tbl = '<table style=cellspacing="0"; text-align:center>'; 
         $id = $rows->id; 
         $customer = $rows->customer; 
         $blok = $rows->blok; 
         $tableno = $rows->tableno; 
         $type = $rows->type; 
         $timein = $rows->timein; 
         $timeout = $rows->timeout; 
         $person = $rows->person; 
         $price = $rows->price; 
        $tbl .= '<tr align="center"> 
        <td width="30px" style="border: 1px solid #000000; ">ID</td> 
        <td width="100px" style="border: 1px solid #000000;">Customer</td> 
        <td width="50px" style="border: 1px solid #000000;">Blok</td> 
        <td width="50px" style="border: 1px solid #000000;">No.</td> 
        <td width="50px" style="border: 1px solid #000000;">Type</td> 
        <td width="110px"style="border: 1px solid #000000;">Check In</td> 
        <td width="110px"style="border: 1px solid #000000;">Check Out</td> 
        <td width="65px" style="border: 1px solid #000000;">People</td> 
        <td width="70px"style="border: 1px solid #000000;">Price</td> 
        </tr>'; 
        $tbl .= '<tr align="center"> 
        <td style="border: 1px solid #000000;">' . $id . '</td> 
        <td style="border: 1px solid #000000;">' . $customer . '</td> 
        <td style="border: 1px solid #000000;">' . $blok . '</td> 
        <td style="border: 1px solid #000000;">' . $tableno . '</td> 
        <td style="border: 1px solid #000000;">' . $type . '</td> 
        <td style="border: 1px solid #000000;">' . $timein . '</td> 
        <td style="border: 1px solid #000000;">' . $timeout . '</td> 
        <td style="border: 1px solid #000000;">' . $person . '</td> 
        <td style="border: 1px solid #000000;">' . $price . '</td> 
        </tr>'; 
        $tbl .= '</table>'; 
       } 

       $pdf->writeHTMLCell(0, 0, '', '', $tbl, 0, 1, 0, true, '', true); 
       $pdf->Output('Report.pdf', 'I'); 

ve bu benim modeldir: Zaten

public function get_report() 
{ 

    $this->load->library('session'); 
    $search_blok = $this->session->userdata('sess_report_blok'); 
    $search_tableno = $this->session->userdata('sess_report_tableno'); 
     $this->db->like('blok' , $search_blok); 
     $this->db->like('tableno' , $search_tableno); 
     $query = $this->db->get('reservation'); 
    return $query->result(); 
} 

orada bir birleştirme kullanarak.

$ pdf-> çıktısını döngü dışında koyduğumda bile, yalnızca bir satır almaya devam eder.

Hatam nerede olduğunu bilen var mı? Herhangi bir yardım takdir edilir.

cevap

0

Tablonun başlangıç ​​ve bitişini döngüden uzak tutun.

Her yinelemede $tbl yeniden başlatılıyor.

+0

olduğunu biliyorum. Basit bir hata olduğunu biliyorum, ama çok fazla teşekkürler ... günümü yaptın :-) :-) – deemer

+0

no problem..happens ve nasıl öğreniyoruz . @deemer –

0

Her döngüde yeni bir $ tbl değişkeni yaratıyorsunuz. Böylece sadece son ürün iade edilir. Table-html'inizi döngü dışında bırakın ve işe yarayacaktır. Bunun gibi:

  $pdf_content = $this->hotel_model->get_report(); 
      $tbl = '<table style=cellspacing="0"; text-align:center>'; 
      foreach ($pdf_content as $rows) { 

        $id = $rows->id; 
        $customer = $rows->customer; 
        $blok = $rows->blok; 
        $tableno = $rows->tableno; 
        $type = $rows->type; 
        $timein = $rows->timein; 
        $timeout = $rows->timeout; 
        $person = $rows->person; 
        $price = $rows->price; 
       $tbl .= '<tr align="center"> 
       <td width="30px" style="border: 1px solid #000000; ">ID</td> 
       <td width="100px" style="border: 1px solid #000000;">Customer</td> 
       <td width="50px" style="border: 1px solid #000000;">Blok</td> 
       <td width="50px" style="border: 1px solid #000000;">No.</td> 
       <td width="50px" style="border: 1px solid #000000;">Type</td> 
       <td width="110px"style="border: 1px solid #000000;">Check In</td> 
       <td width="110px"style="border: 1px solid #000000;">Check Out</td> 
       <td width="65px" style="border: 1px solid #000000;">People</td> 
       <td width="70px"style="border: 1px solid #000000;">Price</td> 
       </tr>'; 
       $tbl .= '<tr align="center"> 
       <td style="border: 1px solid #000000;">' . $id . '</td> 
       <td style="border: 1px solid #000000;">' . $customer . '</td> 
       <td style="border: 1px solid #000000;">' . $blok . '</td> 
       <td style="border: 1px solid #000000;">' . $tableno . '</td> 
       <td style="border: 1px solid #000000;">' . $type . '</td> 
       <td style="border: 1px solid #000000;">' . $timein . '</td> 
       <td style="border: 1px solid #000000;">' . $timeout . '</td> 
       <td style="border: 1px solid #000000;">' . $person . '</td> 
       <td style="border: 1px solid #000000;">' . $price . '</td> 
       </tr>';      
      } 
      $tbl .= '</table>'; 
      $pdf->writeHTMLCell(0, 0, '', '', $tbl, 0, 1, 0, true, '', true); 
      $pdf->Output('Report.pdf', 'I'); 
+0

Merhaba Johan, yanıt için teşekkürler ama bunu denedim ve Undefined dizini ile sonuçlandı: satırlar ve diğer birçok hata. – deemer

+0

Bu gerçekten garip, çünkü tam olarak kabul ettiğin cevabın aynısı, – Johan