Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php tcpdf库。数据库内容太多时不打印_Php_Mysql_Tcpdf - Fatal编程技术网

Php tcpdf库。数据库内容太多时不打印

Php tcpdf库。数据库内容太多时不打印,php,mysql,tcpdf,Php,Mysql,Tcpdf,我试图写一个代码,我必须打印我的数据库的内容,并将其输出为pdf文件 然而,我似乎遇到了一个问题 当我导出数据库中的所有内容时,我的pdf不会显示任何内容 但是如果我限制它,例如限制5 它可以正常工作并正确打印数据 有没有一种方法可以让它打印我的数据库而不必使用limit,因为我需要在单个pdf文件中打印 //tcpdf库的设置 ob_start(); session_start(); include('connect.php'); include('../lib

我试图写一个代码,我必须打印我的数据库的内容,并将其输出为pdf文件

然而,我似乎遇到了一个问题

当我导出数据库中的所有内容时,我的pdf不会显示任何内容

但是如果我限制它,例如限制5

它可以正常工作并正确打印数据

有没有一种方法可以让它打印我的数据库而不必使用limit,因为我需要在单个pdf文件中打印

//tcpdf库的设置

    ob_start();
    session_start();
    include('connect.php');
    include('../libraries/tcpdf/tcpdf.php');
    include('../libraries/tcpdf/config/lang/eng.php');

    // create new PDF document
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

    // set document information
    $pdf->SetCreator(PDF_CREATOR);
    $pdf->SetAuthor('Test');
    $pdf->SetTitle('Report');
    $pdf->SetSubject('Report');
    $pdf->SetKeywords('Test, Report, Data, Form, Results');



    // set default header data
    $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING, array(0,64,255), array(0,64,128));
    $pdf->setFooterData($tc=array(0,64,0), $lc=array(0,64,128));

    // set header and footer fonts
    $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
    $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

    // set default monospaced font
    $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

    //set margins
    $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
    $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
    $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

    //set auto page breaks
    $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

    //set image scale factor
    $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

    //set some language-dependent strings
    $pdf->setLanguageArray($l);

    // ---------------------------------------------------------

    // set default font subsetting mode
    $pdf->setFontSubsetting(true);

    // Set font
    // dejavusans is a UTF-8 Unicode font, if you only need to
    // print standard ASCII chars, you can use core fonts like
    // helvetica or times to reduce file size.
    $pdf->SetFont('dejavusans', '', 14, '', true);

    // remove default header
    $pdf->setPrintHeader(false);

    // Add a page
    // This method has several options, check the source code documentation for more information.
    $pdf->AddPage();
//查询和打印为pdf

    //queries
    $c_name=DB::queryOneField('report_name',"SELECT * from reports r INNER JOIN report_fields rf on r.report_id=rf.report_id INNER JOIN searchcolumn s on rf.field_id=s.scol_id where r.report_id=%i",$_GET['c_id']);


    if($_GET['custom']==true)
    {
        $a=DB::query("SELECT * from reports r INNER JOIN report_fields rf on r.report_id=rf.report_id INNER JOIN searchcolumn s on rf.field_id=s.scol_id where r.report_id=%i",$_GET['c_id']);  
        $s = DB::query("SELECT * FROM alumni order by ln,batch ASC); //<-- ------------------ this is the part where it works if you add LIMIT 5 in the sql statement

        foreach($s as $m){
            foreach($a as $c){
        $line2 .=

        str_replace(",","",$c['advsearch_name']) . ": " . str_replace(",","",$m[$c['advsearch_col']]) . "<br />";

            }
        $line2 .="<br />";
        }

        $data="$line2";


    }


    // Set some content to print
    $html = <<<EOD
    <hr>
    <table>
    <tr>
        <td width="60%">REPORTS - $rp_name</td>
    </tr>
    </table>
    <br>
    $data
    EOD;

    // Print text using writeHTMLCell()
    $pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
    ob_end_clean();

        // Close and output PDF document
        // This method has several options, check the source code documentation for more information.
        $pdf->Output('application.pdf', 'I');
//查询
$c_name=DB::queryOneField('report_name',“SELECT*from reports r internal JOIN report_fields r.report_id=rf.report_id=rf.report_id内部连接搜索列s on rf.field_id=s.scol_id其中r.report_id=%i“,$\u GET['c_id');
如果($\u GET['custom']==true)
{
$a=DB::query(“从报告中选择*r.report\u id=rf.report\u id内部连接报告\u字段rf on r.report\u id=rf.report\u id内部连接搜索列s on rf.field\u id=s.scol\u id其中r.report\u id=%i”,$\u GET['c\u id'];

$s=DB::query(“按ln从校友订单中选择*,批ASC);//在TCPDF脚本开头添加此代码:

ob_start();
set_time_limit(0);
ini_set("memory_limit", "256M");

如果内容不能放在一个页面上,可能会出现问题?您有多少数据?另外-在代码开头添加以下代码:
错误报告(E_ALL);ini_set('display_errors','on');
并查看是否会出现一些错误(请注意,由于
ob.*
函数可能看不到错误-请在测试时尝试删除它们)出现了一个“TCPDF错误:一些数据已经输出,无法发送PDF文件”警告,我注意到我的输出的另一个问题是(这是ob标题)一旦需要打印的数据超过第五页,pdf将不再显示任何内容。第一个错误是自我解释的。ob_end_clean是一个应该修复它的东西(但对我来说,这是错误的方法。你最好先弄清楚发送的内容,然后再删除该代码)。关于第五页:尝试用简单的writeHTML替换writeHTML单元格。(只是猜测,我从未尝试用TCPDF放置长HTML)。此外,TCPDF可能会占用大量内存。我会尝试这样设置:
set\u time\u limit(0);ini\u set(“memory\u limit”,“256M”);
可能没有足够的内存来创建文件。