php - 无法从 mysql 数据库中获取特定行

标签 php html mysql

这是我的第一个问题。 我正在尝试使用 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>

Screenshot of my view.php

最佳答案

在您的 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/

相关文章:

php - 使用 Paypal REST api 和 PHP cURL 发布发票(草稿)不断返回 415 Unsupported Media Type

php - codeigniter 中的两种类型的 URL。一种用于分页,另一种用于显示项目 - 怎么做?

html - 如何消除网格项底部的多余空白?

Java HTML Builder(反模板)库?

mysql - "create table"语句不工作,其他代码工作正常

php - 将文件复制并重命名到同一目录而不删除原始文件

javascript - 在附加 Jquery 期间根据字母对 div 数组进行排序

php - 数据库效率 , php 应用程序

mysql - 复杂的SQL更新语句

php - 我在 laravel 中有一个表单,当我单击提交按钮时,它说 token 不匹配