在 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 位整数的最大值。您需要更改数据库中字段的类型

这是因为

  1. 您正在将条形码保存为数据库中的整数,整数的最大范围为 2147483647。它不会保存任何大于此的数字。
  2. 您不能使用整数,因为整数会将条码 0096234 视为 96234。
  3. 尝试用键盘输入大于 2147483647 的数字,它不会像您预期的那样保存。

Change your datatype maybe varchar