在 PHP / MySql 中插入并显示条码
Insert and display Barcode in PHP / MySql
我有一个表格,我可以在其中 扫描我的条形码
form_insert.php
<form action="stock_insert.php" method="get">
<input type="text" name="barcode" placeholder="Εισαγωγή BarCode"> <br>
<input type="submit" name="SAVE"
</form>
将其插入我的数据库
stock_insert.php
<?php
include_once 'database_connection.php';
$barcode = $_GET['barcode'];
$sql = "INSERT INTO stock(barcode) VALUES ('$barcode');";
mysqli_query($conn, $sql);
header('Location: form_insert.php?signup=success');
?>
当我扫描我的条形码时,我显示的数字是 008576124045
但在我的数据库中,该号码保存为 2147483647
之后,当我想再次扫描并显示我的条形码时:
test.php
<script>
$(document).ready(function(){
$("#submit").click(function(){
var barcode = $("#kwdikos").val();
$.post("database/ajax.php",
{
barcode: barcode ,
value: value
},function(data){
$("#test").html(data);
});
});
});
</script>
<input type="text" id="kwdikos" placeholder="Εισαγωγή BarCode">
<input type="submit" id="submit" name="add" value="Προσθήκη">
ajax.php
<?php
$barcode = $_POST['barcode'];
$sql_get = "SELECT * FROM stock WHERE barcode ='$barcode' ";
$result = mysqli_query($conn, $sql_get);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)){
$name = $row['name'];
$color = $row['color'];
$kind = $row ['kind'];
$price = $row['price'];
}}
$sql = "INSERT INTO receipt (barcode, name, color, kind, value , price) VALUES ('{$barcode}','{$name}','{$color}','{$kind}','{$value}' , '{$price}')";
mysqli_query($conn, $sql);
?>
<table class="table table-dark">
<thead>
<tr>
<td>BarCode</th>
<td>Ονομασία</th>
<td>Χρώμα</th>
<td>Είδος</th>
<td>Ποσότητα</td>
<td>Τιμή</td>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM receipt ";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)){
?>
<tr>
<td><?php echo $row['barcode']; ?> </td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['color']; ?></td>
<td><?php echo $row['kind'];?></td>
<td><?php echo $row['value'];?> </td>
<td><?php echo $row['price'];
echo "€";?></td>
</tr>
<?php }} ?>
</tbody>
</table>
当我再次扫描时,输入的数字是 (008576124045)
我的屏幕显示保存在数据库中的正确号码 (2147483647)
但是所有其他想要显示的东西都不要显示!
当我不使用条形码,但在我的输入中我用键盘写了一个数字(例如:10500)时,我的代码没有问题。它 运行 完美,数据库中的所有内容都是正确的。
But in my database the number is saved as 2147483647
2,147,483,647 是 32 位整数的最大值。您需要更改数据库中字段的类型
这是因为
- 您正在将条形码保存为数据库中的整数,整数的最大范围为 2147483647。它不会保存任何大于此的数字。
- 您不能使用整数,因为整数会将条码 0096234 视为 96234。
- 尝试用键盘输入大于 2147483647 的数字,它不会像您预期的那样保存。
Change your datatype maybe varchar
我有一个表格,我可以在其中 扫描我的条形码
form_insert.php
<form action="stock_insert.php" method="get">
<input type="text" name="barcode" placeholder="Εισαγωγή BarCode"> <br>
<input type="submit" name="SAVE"
</form>
将其插入我的数据库
stock_insert.php
<?php
include_once 'database_connection.php';
$barcode = $_GET['barcode'];
$sql = "INSERT INTO stock(barcode) VALUES ('$barcode');";
mysqli_query($conn, $sql);
header('Location: form_insert.php?signup=success');
?>
当我扫描我的条形码时,我显示的数字是 008576124045
但在我的数据库中,该号码保存为 2147483647
之后,当我想再次扫描并显示我的条形码时:
test.php
<script>
$(document).ready(function(){
$("#submit").click(function(){
var barcode = $("#kwdikos").val();
$.post("database/ajax.php",
{
barcode: barcode ,
value: value
},function(data){
$("#test").html(data);
});
});
});
</script>
<input type="text" id="kwdikos" placeholder="Εισαγωγή BarCode">
<input type="submit" id="submit" name="add" value="Προσθήκη">
ajax.php
<?php
$barcode = $_POST['barcode'];
$sql_get = "SELECT * FROM stock WHERE barcode ='$barcode' ";
$result = mysqli_query($conn, $sql_get);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)){
$name = $row['name'];
$color = $row['color'];
$kind = $row ['kind'];
$price = $row['price'];
}}
$sql = "INSERT INTO receipt (barcode, name, color, kind, value , price) VALUES ('{$barcode}','{$name}','{$color}','{$kind}','{$value}' , '{$price}')";
mysqli_query($conn, $sql);
?>
<table class="table table-dark">
<thead>
<tr>
<td>BarCode</th>
<td>Ονομασία</th>
<td>Χρώμα</th>
<td>Είδος</th>
<td>Ποσότητα</td>
<td>Τιμή</td>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM receipt ";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck > 0) {
while ($row = mysqli_fetch_assoc($result)){
?>
<tr>
<td><?php echo $row['barcode']; ?> </td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['color']; ?></td>
<td><?php echo $row['kind'];?></td>
<td><?php echo $row['value'];?> </td>
<td><?php echo $row['price'];
echo "€";?></td>
</tr>
<?php }} ?>
</tbody>
</table>
当我再次扫描时,输入的数字是 (008576124045)
我的屏幕显示保存在数据库中的正确号码 (2147483647)
但是所有其他想要显示的东西都不要显示!
当我不使用条形码,但在我的输入中我用键盘写了一个数字(例如:10500)时,我的代码没有问题。它 运行 完美,数据库中的所有内容都是正确的。
But in my database the number is saved as 2147483647
2,147,483,647 是 32 位整数的最大值。您需要更改数据库中字段的类型
这是因为
- 您正在将条形码保存为数据库中的整数,整数的最大范围为 2147483647。它不会保存任何大于此的数字。
- 您不能使用整数,因为整数会将条码 0096234 视为 96234。
- 尝试用键盘输入大于 2147483647 的数字,它不会像您预期的那样保存。
Change your datatype maybe varchar