【发布时间】:2018-04-12 15:08:23
【问题描述】:
我在查询我的 mysql 表以获取单行以便我可以使用 fpdf 库打印它时遇到问题。到目前为止,我可以查询和打印整个表,但我不能根据行 ID 动态打印它。这是数据表设置;
<tr>
<td>'.$data["cardId"].'</td>
<td id="surname_'.$data["cardId"].'">'.$data["surname"].', '.$data["givenName"].'</td>
<td id="resAddress_'.$data["cardId"].'">'.$data["resAddress"].'</td>
<td id="resSuburb_'.$data["cardId"].'">'.$data["resSuburb"].'</td>
<td id="jobTitle_'.$data["cardId"].'">'.$data["jobTitle"].'</td>
<td>
<input type="button" onclick="viewORedit('.$data["cardId"].', \'edit\')" value="Edit / View" class="btn btn-primary">
</td>
<td>
<form method="get" action="invoice.php">
<input type="submit" value="Generate" name='.$data["cardId"].' class="btn btn-success">
</form>
</td>
<td>
<input type="button" onclick="deleteRow('.$data["cardId"].')" value="Delete" class="btn btn-danger">
</td>
</tr>
我正在使用“生成”按钮来提取和生成数据。这是我的 SQL 查询和 pdf 设置;
$pdf = new PDF('P', 'mm', 'A4');
$pdf->AliasNbPages('{pages}');
$pdf->AddPage();
$pdf->SetFont('Arial', '', 9);
$pdf->SetDrawColor(50,50,100);
$id = '.$data["cardId"].';
$query=mysqli_query($connection,
"SELECT
surname, otherSurname, givenName, jobTitle
FROM
cards, employment
WHERE
cards.cardId = '$id'");
while($data=mysqli_fetch_array($query)){
$pdf->Cell(40,5,$data['surname'], 1, 0);
$pdf->Cell(25,5,$data['otherSurname'], 1, 0);
$pdf->Cell(65,5,$data['givenName'], 1, 0);
$pdf->Cell(60,5,$data['jobTitle'], 1, 1);
}
$pdf->Output();
如果我删除传递的 id,我会在 pdf 中打印所有记录。如果我添加 id,我不会得到任何结果(只有 pdf 格式)。但我想获取行 ID,这样我就可以生成该行数据的 pdf,而不是打印整个表。请帮忙。
谢谢你们。
【问题讨论】:
-
我怀疑这行
$id = '.$data["cardId"].';有问题你能在该行下做echo $id看看变量是否包含任何东西吗? -
没错。我没有从数据表中传递正确的行 ID。当我单击“生成”按钮时,有关如何传递正确的行 ID 的任何想法?这是我在
echo $id--.$data["cardId"]..$data["cardId"]..$data["cardId"]..$data["cardId"]..$data["cardId"]..$data["cardId"]..$data["cardId"]..$data["cardId"]..$data["cardId"]..$data["cardId"].时得到的回复 -
应该是
$id = $data['cardId']。就像现在一样,您将$id设置为静态字符串。不要忘记清理输入以避免 SQL 注入,永远不要相信来自用户的数据。在公共系统中将未经检查的数据附加到查询是危险的。考虑使用 PDO 或准备好的 SQL 语句。 -
酷!你说的对 !虽然我尝试了
$id = $data['cardId'],但我现在得到一个未定义的变量错误。谢谢兄弟,我会这样做,现在只是在 POC 上工作,我对 PHP 有点陌生,哈哈 -
@Rayzor536 你得到未定义的变量,因为
$data[ 'cardID' ]不存在。该变量未在该文件中声明。您需要从 HTML 页面 POST 变量并使用 POST 引用设置 $id 变量。看到这个(stackoverflow.com/questions/2990990/…)