TCPpdf SQL 查询仅检索一行


tcpdf sql query only retrieving one row

似乎我有一个简单的错误,但我不能完全理解它。

我正在使用编码点火器和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>输出放在循环之外,它仍然只检索一行。

有谁知道我的错误在哪里?任何帮助,不胜感激。

将表的开头和结尾保持在循环之外。

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

您将在每个循环中创建一个新的$tbl变量。因此,仅返回最后一项。把你的表格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');