我有一个变量($ html),它有一些值(稍后我需要用MPDF将其保存为PDF)。它的一部分值是通过查询数据库生成的。 现在代码看起来像......
$html = '
<html>
<head>...</head>
<body>
<table>
<thead>
<tr>
<td>ITEM NAME</td>
<td>QTY</td>
<td>PRICE</td>
<td>TOTAL</td>
</tr>
</thead>
<tbody>'.
$items_query = "SELECT * FROM cart WHERE u_id='$u_id'"
or die('Error Querying Database...');
$run_items_query = mysqli_query($con, $items_query);
while($row_query = mysqli_fetch_array($run_items_query)){
$item = $row_query['p_name'];
$unit_price = $row_query['price'];
$qty = $row_query['qty'];
$price = $unit_price*$qty;
echo'
<tr>
<td>'.$item.'</td>
<td>'.$qty.'</td>
<td>'.$unit_price.'</td>
<td>'.$price.'</td>
</tr>
';
}
'<tr>
<td>TOTAL:</td>
<td>0000</td>
</tr>
</tbody>
</table>
</body>
</html>';
我在这里做的是 - 创建简单表并通过SQL查询添加所有<td>
。我不知道如何将简单的文本部分和查询结果部分作为值连接到$ html变量。
现在它只显示查询开始之前的值的第一部分,然后显示这个 - 'SELECT * FROM cart WHERE u_id ='ee0fivtt9tq39i5mpdhtf9v051'...而不是它得到的<td>
。
如果你能弄清楚我做错了什么,请告诉我。
答案 0 :(得分:2)
使用$html
参数将另一个字符串与.
连接起来检查答案,您正在使用的查询是自愿的SQL注入,而不是我已经更新了参数化的查询,这将保护您免受SQL注入。
$html = '
<html>
<head>...</head>
<body>
<table>
<thead>
<tr>
<td>ITEM NAME</td>
<td>QTY</td>
<td>PRICE</td>
<td>TOTAL</td>
</tr>
</thead>
<tbody>';
$items_query = "SELECT * FROM cart WHERE u_id=?";
//or die('Error Querying Database...'); this don't needs to be here
$query = $con->prepare($item_query);
$query->bind_param('s', $u_id);
//$run_items_query = mysqli_query($con, $items_query);
$result = $query->execute();
while($row_query = $result->fetch_assoc()){
$item = $row_query['p_name'];
$unit_price = $row_query['price'];
$qty = $row_query['qty'];
$price = $unit_price*$qty;
$html .='
<tr>
<td>'.$item.'</td>
<td>'.$qty.'</td>
<td>'.$unit_price.'</td>
<td>'.$price.'</td>
</tr>
';
}
$html .= '<tr>
<td>TOTAL:</td>
<td>0000</td>
</tr>
</tbody>
</table>
</body>
</html>';
echo $html;
享受: - )