Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.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 FPDF中的While循环_Php_Fpdf - Fatal编程技术网

Php FPDF中的While循环

Php FPDF中的While循环,php,fpdf,Php,Fpdf,我在让SQL查询在fpdf内部工作时遇到了一些问题,这可能吗 我现在有 session_start(); require('fpdf.php'); class PDF extends FPDF { function Header() { include('config.php'); $client_check = $db->prepare("SELECT * FROM clients WHERE client_

我在让SQL查询在fpdf内部工作时遇到了一些问题,这可能吗

我现在有

session_start();
require('fpdf.php');    
class PDF extends FPDF
{
    function Header()
        {
            include('config.php');
            $client_check = $db->prepare("SELECT * FROM clients WHERE client_fullname = '".$_SESSION['client_details']."'");
            $client_check->execute();
            while ($row = $client_check->fetch(PDO::FETCH_ASSOC))
            {
                $client_firstname    = $row ['client_firstname'];
                $client_lastname     = $row ['client_lastname'];
                $client_address      = $row ['client_address'];
                $client_jobaddress   = $row ['client_jobaddress'];
                $client_homephone    = $row ['client_homephone'];

                $this->SetFont('Arial', 'B', 12);
                $this->Cell(10,0,'Ph(H):',0,0,'C');
                $this->Cell(20,0,''.$client_homephone.'', 0,0,'C');
                $this->Line(30,61,100,61);
                $this->Cell(210,0,'Job No:',0,0,'C');
                $this->Cell(-120,0,'Model:',0,0,'C');
                $this->Line(110,61,200,61);
            }
        }
    }
// Instanciation of inherited class
$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',10);
$pdf->Output();

在我添加while循环之前,一切都很顺利。现在它只是吐出一个空白的pdf给我。我怎样才能解决这个问题呢?

恐怕你做不到

$con = mysql_connect("localhost", "{username}", "{password}") or die(mysql_error()) ; 
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$db = mysql_select_db("{db}", $con) or die(mysql_error()) ; 
$client= mysql_query("{SELECT * FROM clients}")or die(mysql_error());
while ($client2= mysql_fetch_array($client)){

$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',10);

$pdf->Cell(20,0,''.$client2["client_homephone"].'', 0,0,'C');
.....

}

mysql_close($con);

$pdf->Output();
这是因为每次向pdf添加新页面时(如果页面溢出,则会自动执行此操作),都会运行Header函数

相反,你可以这样做

  • 创建PDF类的构造函数,该类调用函数say Fill_details
  • 将while循环移动到函数Fill_details中
  • 页眉和页脚函数应该只包含所有页面共有的部分代码,比如页面边框、页脚版权等

  • 你能告诉我你的实际需求是什么吗?这样我可以给你建议一个更好的方法。@Praveenkalal我需要做一个SQL调用,从数据库中获取数据,添加到PDF中。请先检查循环是否正常工作,然后动态更改位置,否则每次都会覆盖文本。你尝试的是可能与FPDF有关。您需要检查您的循环。您是否正在检查$client_check->execute附近的查询是否正确执行?感谢您的回复,但不应使用mysql_*函数。看见