这是我的第一个问题。 我正在尝试使用 mpdf 从数据库的特定行生成 pdf。我希望代码在需要时下载特定行的数据。 每行旁边都有一个下载链接。当按下下载按钮时,它将下载该行的数据。 该代码正在运行,但它正在从数据库中获取所有值并并排分配值。 这是我生成的 pdf php
<?php
//==============================================================
//==============================================================
//==============================================================
include("mpdf/mpdf.php");
include "config.php";
$res = mysql_query("select date1, date2 from test");
if (!$res)
die("query error : ".mysql_error());
$mpdf=new mPDF('c','A4','','',32,25,27,25,16,13);
$mpdf->SetDisplayMode('fullpage');
$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first
level of a list
// LOAD a stylesheet
$stylesheet = file_get_contents('mpdfstyletables.css');
$mpdf->WriteHTML($stylesheet,1); // The parameter 1 tells that this is
css/style only and no body/html/text
$html = '
<center><h3>Test</h3></center>
<center>
<table border="1">
<tr>
<th>Date 1</th><th>Date 2</th>
</tr>
<tr>';
while($row = mysql_fetch_array($res)){
$html .=
'<td>'.$row['date1'].'</td>
<td>' . $row['date2']. '</td>';
}
$html .= '
</tr>
</table></center>
';
$mpdf->WriteHTML($html,2);
$mpdf->Output('mpdf.pdf','I');
exit;
//==============================================================
//==============================================================
//==============================================================
?>
这是查看数据库的view.php部分
<html>
<body>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
text-align: center;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
textarea
{
width:100%;
}
.textwrapper
{
border:1px solid #dddddd;
margin:5px 0;
padding:1px;
}
</style>
<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('test') or die(mysql_error());
$query=mysql_query("select * from test limit 0,10") or die(mysql_error());
echo'<table border="1" ><th >Id</th><th>Date 1</th><th>Date 2</th>';
while($res=mysql_fetch_array($query))
{
echo'<tr><td>'.$res['id'].'</td><td>'.$res['date1'].'</td>
<td>'.$res['date2'].'</td>
<td><a href="gen.php?id=<?php echo $row["id"]; ?> Downlaod</a></td>
</tr>';
}
echo'</table>';
?>
</body>
</html>
最佳答案
在您的 View 页面中,
没有名为$row
的数组。 $res
保存您的查询结果集。
改用这个:
while($res=mysql_fetch_array($query)){
echo"<tr>";
echo "<td>$res['id']</td><td>$res['date1']</td>";
echo "<td>$res['date2']</td>";
echo "<td><a href=\"gen.php?id={$res['id']}\">Download</a></td>";
echo "</tr>";
}
在您的 pdf 生成代码中,更改:
$res = mysql_query("select date1, date2 from test");
收件人:
$res = mysql_query("SELECT date1,date2 FROM test WHERE id=".intval($_GET['id']));
拜托,拜托,请立即将您的 mysql
函数升级到 mysqli_
。
我建议使用 prepared statement保护您的查询免受恶意注入(inject)。同时,您可以使用 intval()作为懒惰/临时修复。
关于php - 无法从 mysql 数据库中获取特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43517210/