tcpdf sql 查询只检索一行
tcpdf sql query only retrieving one row
看来我有一个简单的错误,但我不太明白。
我正在使用 codeigniter 和 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->output 放在循环之外,它仍然只检索一行。
有谁知道我的错误在哪里?感谢任何帮助。
您正在每个循环中创建一个新的 $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');
将 table 的开始和结束放在循环之外。
您将在每次迭代中重新初始化 $tbl
。
看来我有一个简单的错误,但我不太明白。
我正在使用 codeigniter 和 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->output 放在循环之外,它仍然只检索一行。
有谁知道我的错误在哪里?感谢任何帮助。
您正在每个循环中创建一个新的 $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');
将 table 的开始和结束放在循环之外。
您将在每次迭代中重新初始化 $tbl
。