【发布时间】:2016-06-13 21:05:07
【问题描述】:
大家晚上好,我想为每种意大利面打印一个条形码。 我将此代码改编为我的,但它不会读取代码字段中的数据。 (由 php rand() 代码创建) 我会通过要打印的条形码选择id。
<html>
<head>
<?php
$con=mysqli_connect("localhost","xxx","xxx","xxx");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$id = $_GET['id'];
$query= "select * from pasta where id='$id'";
$result = mysqli_query($con,$query);
while ($row = mysqli_fetch_assoc($result)){
$rand=$row['codice'];
}
?>
<br>
<div style="width:25px: height:500px; border:2px, solid #000; align="center"">
<div align="center">
<img src="http://bcgen.com/demo/linear-dbgs.aspx?=D<?php echo $rand ?>">
<br>
<form action ="stampa.php" method="post">
<input type="button" value="stampa"
onClick="window.print()"/>
</form>
</body>
</html>
【问题讨论】:
-
如果您希望
$rand有多个值,则将 HTML 放在 while 循环中,而不是放在它之后。如果只需要 1 个值,请将while更改为if。 -
我也想知道为什么你打开
<div>s却从来没有关闭</div>s。 -
$rand 是唯一的一行
-
a) 请使用准备好的语句 b) 启用 php 警告和错误 c) 您确定列名为
codice(区分大小写!)。 d) 你确定$_GET['id']设置了吗? d) 你确定你的查询返回了什么吗?回显您使用它们的所有值并检查它们的值。 -
警告:当使用
mysqli时,您应该使用parameterized queries 和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug。 切勿将$_POST或$_GET数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。