猿问

在 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


之后,当我想再次扫描并像这样显示我的条形码时:


测试.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);




当我再次扫描时,输入的数字是(008576124045)


我的屏幕显示保存在数据库中的正确号码 (2147483647)


但是所有其他想要显示的东西都不要显示!


当我不使用条形码时,但在我的输入中,我用键盘写了一个数字(例如:10500),我的代码没有问题。它运行完美,数据库中的所有内容都是正确的。


倚天杖
浏览 171回答 2
2回答

吃鸡游戏

这是因为您将条形码保存为数据库中的整数,int 的最大范围是 2147483647。它不会保存任何大于此的数字。您不能使用 int,因为整数会将条形码 0096234 视为 96234。尝试通过键盘输入大于 2147483647 的数字,它不会按预期保存。更改您的数据类型可能是 varchar

慕田峪4524236

但在我的数据库中,数字保存为 21474836472,147,483,647 是 32 位整数的最大值。您需要更改数据库中字段的类型
随时随地看视频慕课网APP
我要回答