2016-03-22 55 views
0

看來我有簡單的錯誤,但我無法完全理解它。tcpdf sql查詢只檢索一行

我使用笨和TCPDF第三方

這裏是我的控制器從查詢結果下載PDF文件:

$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'); 

,這是我的模型:

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(); 
} 

已在那裏使用串聯。

即使我把$ pdf->輸出放在循環外,它仍然只檢索一行。

有誰知道我的錯誤在哪裏?任何幫助表示讚賞。

回答

0

保持表的開始和結束不在循環中。

您在每次迭代中都重新初始化$tbl

+0

我知道這是一個簡單的錯誤,但是非常感謝danyal ......你讓我的一天:-) – deemer

+0

沒有問題..發生,這就是我們如何學習。 @deemer –

0

您正在每個循環中創建一個新的$ tbl變量。所以只返回最後一個項目。把你的table-html放在循環之外,它就可以工作。像這樣:

  $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

嗨Johan,thx的回覆,但我試過,並導致未定義的索引:行,和許多其他錯誤。 – deemer

+0

這真的很奇怪,因爲它與你接受的答案完全一樣 – Johan