从mysql生成报告,出现错误

时间:2014-03-12 04:45:24

标签: php mysql dompdf

继承我的代码,当我第一次尝试使用我的查询显示来自我的数据库的所有数据时,但是当我将其添加到我的查询时WHERE SECTION ='$ .thissection'“我得到了pdf错误,并且它确实工作,即使我已设置POST调用我的页面上的值,我的代码有什么问题,请我真的需要它,

    include_once( 'dompdf\dompdf_config.inc.php');

    $html = '<!DOCTYPE html>
    <html>

    <head>
    <meta charset="utf-8">

    </head>
    <body>
         <div id="container">
         <caption><h2 style="margin-left: 180px;">St. Therese Lisioux School of Cainta </h2></caption>
          <table class="zebra">







     $thissubject = $_POST['subject'];
    $thissection = $_POST['section'];
    $thisgrade_level = $_POST['grade_level']; 

      $sqlQuery = mysql_query("SELECT si.STUDENT_ID, concat(si.LNAME,',  ',si.FNAME) as Name,
                  sg.*
                  From student_info si Left join grades sg On si.STUDENT_ID = sg.STUDENT_NO 
                  WHERE SECTION = '$.thissection'"); 
      while($row = mysql_fetch_assoc($sqlQuery))
        {

        $student_id = $row['STUDENT_NO'];
        $Name  = $row['Name'];
        $SUBJECT_NAME = $row['SUBJECT'];
        $first_Grading = $row['FIRST_GRADING'];
        $second_Grading = $row['SECOND_GRADING'];
        $third_Grading =   $row['THIRD_GRADING'];
        $fourth_Grading =$row['FOURTH_GRADING'];
        $final = $row['FINAL'];
        $status = $row['STATUS'];


       $html .= '<tbody>
        <tr class="warning">
          <td>'.$student_id.'</td>
          <td>'.$Name.'</td>
          <td>'.$SUBJECT_NAME.'</td>
          <td>'.$first_Grading.'</td>
          <td>'.$second_Grading.'</td>
          <td>'.$third_Grading.'</td>
          <td>'.$fourth_Grading.'</td>
          <td>'.$final.'</td>
          <td>'.$status.'</td>

        </tr>
        </tbody>';



        }

  $html .= ' </table>
       </div>
    </body>
    </html>

    ';

    $dompdf = new DOMPDF();
    $dompdf ->set_paper("a4", "landscape");
    $dompdf ->load_html($html);
    $dompdf ->render();
    $dompdf ->stream('Student_report.pdf');

  ?>strong text

1 个答案:

答案 0 :(得分:1)

您的代码存在严重的PHP语法错误。

  1. 您在单引号字符串变量中使用PHP代码,而PHP解析器不会对其进行解析。
  2. 另外,你没有逃避代码。
  3. include_once()
  4. 中使用斜杠代替反斜杠
  5. 您没有初始化MySQL连接
  6. 停止使用已弃用的mysql_*函数,并且您的代码会受到SQL注入攻击,因为您直接允许在查询中插入POST值。请改用MySQLiPDO。这是PDO的一个很好的tutorial
  7. 您的HTML缺少<title>
  8. 您的错误处理机制在哪里?您希望各种输入都没有错误吗?
  9. 要进行快速修复,请更改以下行:

    <table class="zebra">
    

    <table class="zebra">';
    

    以结束$html变量。