2012-06-20 26 views
0

我想在PDF文件中显示结果。现在的问题是PDF文件只能捕获while循环的第一行。第一行有row[0]['rates'],第二行有row[1]['rates']?所以我只能取一次,显示row[0]['rates']row[1]['rates'] ...PHP mysql在一个目标中显示4个结果

创建PDF:

<?php 
session_start(); 

if(empty($_POST['compare'])) 
include"connect_to_mysql.php"; 
$packages = mysql_query("SELECT*FROM package_creation WHERE id IN (". implode(',', $_POST['compare']) .") LIMIT 4"); 

while($row=mysql_fetch_array($packages)){ 
$compare ='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Compare Packages</title> 
<style type="text/css"> 
.print_title{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:20px; 
    font-weight:bold; 
    color:#000; 
} 
.print_text{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:10px; 
    color:#000000; 
} 
.print_bold{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:10px; 
    color:#000000; 
    font-weight:bold; 
} 
.print_footer{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:9px; 
    color:#000000; 
} 
.print_big{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:14px; 
    color:#000000; 
    font-weight:bold; 
} 
body{ 
    margin:0px; 
} 
table td{ 
    height:1px; 
} 
</style> 
</head> 

<body> 
<table class="print_text" align="left"> 
<tr> 
<td width="200px" class="print_bold" align="right">Package</td><td width="100px" class="print_bold" align="center">Package 1</td><td width="100px" class="print_bold" align="center">Package 2</td><td width="100px" class="print_bold" align="center">Package 3</td><td width="100px" class="print_bold" align="center">Package 4</td> 
</tr> 
<tr> 
<td class="print_bold" align="right">Bank Code:</td><td width="100px" align="center">'.$row['bank_name'].'</td><td width="100px" align="center">display 2nd bank</td><td width="100px" align="center">display 3rd bank</td><td width="100px" align="center">display 4th bank</td> 
</tr> 
</table> 
</body> 
</html>'; 

} 
include_once('dompdf/dompdf_config.inc.php'); 
$dompdf = new DOMPDF(); 
$dompdf->load_html($compare); 
$dompdf->render(); 
$dompdf->stream('Compare_Packages.pdf'); 

?> 

回答

1

问题是while循环。每次循环时,您都会覆盖$ compare的值。什么,你会想要做的是一样的东西

$compare = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Compare Packages</title> 
<style type="text/css"> 
....//you styles here 
</style> 
</head> 

<body> 
<table class="print_text" align="left"> 
<tr> 
<td width="200px" class="print_bold" align="right">Package</td><td width="100px" class="print_bold" align="center">Package 1</td><td width="100px" class="print_bold" align="center">Package 2</td><td width="100px" class="print_bold" align="center">Package 3</td><td width="100px" class="print_bold" align="center">Package 4</td> 
</tr>'; 

while($row=mysql_fetch_array($packages)){ 

    $compare .= '<tr> 
<td class="print_bold" align="right">Bank Code:</td><td width="100px" align="center">'.$row['bank_name'].'</td><td width="100px" align="center">display 2nd bank</td><td width="100px" align="center">display 3rd bank</td><td width="100px" align="center">display 4th bank</td> 
</tr>'; 
} //end while 

$compare .= '</table> 
</body> 
    </html>'; 


//rest of your code 

这样,它增加了循环到$中间结果比较字符串,而不是每次都覆盖它。查找字符串连接以获取更多详细信息http://php.net/manual/en/language.operators.string.php。道歉,如果这里有任何次要代码问题,因为它是未经测试

0

而不是创建while循环中一个全新的文档,你可以在表行循环:

首先设置你的$比较变量(注意[TABLE_ROWS]字符串变量$比较)内:

$compare = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Compare Packages</title> 
<style type="text/css"> 
.print_title{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:20px; 
    font-weight:bold; 
    color:#000; 
} 
.print_text{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:10px; 
    color:#000000; 
} 
.print_bold{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:10px; 
    color:#000000; 
    font-weight:bold; 
} 
.print_footer{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:9px; 
    color:#000000; 
} 
.print_big{ 
    font-family:Arial, Helvetica, sans-serif; 
    font-size:14px; 
    color:#000000; 
    font-weight:bold; 
} 
body{ 
    margin:0px; 
} 
table td{ 
    height:1px; 
} 
</style> 
</head> 

<body> 
<table class="print_text" align="left"> 
<tr> 
<td width="200px" class="print_bold" align="right">Package</td><td width="100px" class="print_bold" align="center">Package 1</td><td width="100px" class="print_bold" align="center">Package 2</td><td width="100px" class="print_bold" align="center">Package 3</td><td width="100px" class="print_bold" align="center">Package 4</td> 
</tr> 
[TABLE_ROWS] 
</table> 
</body> 
</html>'; 

然后让所有的行显示:

while($row=mysql_fetch_array($packages)){ 
$table_rows .= '<tr> 
<td class="print_bold" align="right">Bank Code:</td><td width="100px" align="center">'.$row['bank_name'].'</td><td width="100px" align="center">display 2nd bank</td><td width="100px" align="center">display 3rd bank</td><td width="100px" align="center">display 4th bank</td> 
</tr>'; 
} 

$compare = str_replace('[TABLE_ROWS]', $table_rows, $compare); 

然后调用休息您的代码:

include_once('dompdf/dompdf_config.inc.php'); 
$dompdf = new DOMPDF(); 
$dompdf->load_html($compare); 
$dompdf->render(); 
$dompdf->stream('Compare_Packages.pdf'); 
相关问题