2016-06-13 4 views
1

おはようございます、パスタの種類ごとにバーコードを印刷したいと思います。 私はこのコードを鉱山に適合させましたが、コードフィールド内のデータは読み込みません。 (これはphp rand()コードで作成されています) バーコードでIDを選択して印刷します。バーコードがmysqlのローを読み取らない

<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> 
+0

あなたは '$ランドに複数の値を期待していた場合その後、HTMLをwhileループの中に入れるのではなく、whileループの中に入れます。 1つの値だけが必要な場合は、 'while'を' if'に変更してください。 – developerwjk

+0

なぜ '

's but never have any closing '
' sを開くのだろうと思います。 – developerwjk

+0

$ randは一意の行です – lelemkop

答えて

0

あなたの選択に一致するすべての行を読み込み、ループ内で「codice」のすべての値を上書きしますが、最後のループを持っている私には思えるし、次になります(最終的には、中にいくつかのHTMLを作成しますブラウザ)でバーコードを生成します。

Solarflareはかなり正しいです:あなたの入力があなたが思っているものであることと、クエリ結果に期待するフィールドがあることを確認してください。フィールド名を明示的に(つまり*を使用しないで)特に言及することは良い習慣と考えられます。そのため、不一致の名前が見つけやすくなります。

DBから1つの値しか期待していない場合は、whileループは必要ありません。おそらく、SQLのLIMIT 1も良いでしょう。そうでなければ、PHPループの中でhtmlをネストする必要があります。そうすれば、複数のimgタグ出力を得ることができます。

...確かにhtmlを修正してください。これはコードがインデントされた場合に役立ちます。これは、一致しないものがすぐに表示されるためです。

[より良い練習がブラウザ/クライアントを作成し、バーコード、サーバー側ではなく生成することになり、そのうち話すサードパーティのサイトからそれを行う。]

+0

が解決されました。 リンクで間違っていた "http://bcgen.com/demo/linear-dbgs.aspx?D=" – lelemkop

関連する問題