当相同的值已经存在时动态更新数量(JavaScript/PHP/SQL)

当相同的值已经存在时动态更新数量(JavaScript/PHP/SQL),javascript,php,mysql,sql,Javascript,Php,Mysql,Sql,1-addlist.php 在这个页面中,我只有一个文本输入。我可以扫描一个条形码,在输入中给我一个文本结果(例如:“香蕉”) 2-validaiton.php 这个页面连接我的SQL数据库并检查我的另一个页面(addlist.php)的文本框中的值是否在我的数据库中 3-addlist.php 如果该值存在于DB中,则设置一条消息并将该值放入列表中。如果没有,则设置其他消息,不执行任何操作 /!\仅供参考:我有一个条形码扫描仪,所以我无法按下按钮或显示列表中的值。所以我选择设置一个计时器,每8

1-addlist.php 在这个页面中,我只有一个文本输入。我可以扫描一个条形码,在输入中给我一个文本结果(例如:“香蕉”)

2-validaiton.php 这个页面连接我的SQL数据库并检查我的另一个页面(addlist.php)的文本框中的值是否在我的数据库中

3-addlist.php 如果该值存在于DB中,则设置一条消息并将该值放入列表中。如果没有,则设置其他消息,不执行任何操作

/!\仅供参考:我有一个条形码扫描仪,所以我无法按下按钮或显示列表中的值。所以我选择设置一个计时器,每800毫秒,它就会取一个值并清除。有了它,我可以扫描一个值,显示并动态清除它,而无需触摸键盘。/!\

addlist.php


  • var list=document.getElementById('demo'); $(文档).ready(函数() { 普京(); 函数{ var focused=$(“:focus”); $(“#IDAlim”).focus(); focus.focus(); var IDAlim=document.getElementById('IDAlim').value; var quantite=“1”; var entry=document.createElement('li'); 如果(IDAlim!=“”) { $.post('validation.php',{IDAlim:$('#IDAlim').val()},函数(数据){ if(data.exists){ 警报('Is in DB'); $(“#demo”).append(“
  • ”+IDAlim++'+quantite++'x'+'
  • ”); }否则{ 警报(“请重新扫描”); } }“JSON”); setTimeout(函数(){putIn()},800); $(“#IDAlim”).val(“”); } 其他的 { entry.appendChild(document.createTextNode(IDAlim)); setTimeout(函数(){putIn()},800); $(“#IDAlim”).val(“”); } } })
    validation.php

    <?php 
    
    //set the headers to be a json string
    header('content-type: text/json');
    
    //no need to continue if there is no value in the POST IDAlim
    if(!isset($_POST['IDAlim']))
        echo json_encode(array('non' => 'POSTError'));
    
    
    
    //Variable for db connection
    $host="localhost";
    $user="root";
    $pass="";
    $dbname="aliments";
    
    try
      {  
        $dbcon = new PDO("mysql:host={$host};dbname={$dbname}",$user,$pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
    
        $query = $dbcon->prepare('SELECT nom FROM tblaliments WHERE nom = :nomAlim');
    
        $query->bindParam(':nomAlim', $_POST['IDAlim']);
    
        $query->execute();
    
        //return the json object containing the result of if the IDAlim exists or not. The $.post in my jquery will access it.
    echo json_encode(array('exists' => $query->rowCount()));
      }
      catch (Exception $e)
      {
        echo json_encode(array('non' => 'PDOError'));
      }
    ?>
    
    
    
    当我扫描同一个值时,我会更新我的数量,在我的例子中,我将挂起的“1”作为“quantite”(=法语中的数量)以向您展示一个示例

    那是我的问题

    我想要什么


    提前感谢您的帮助,并为我的英语不好(我说法语)感到抱歉。

    您能给我们您的tblaliments表结构吗?
    插入。。。在重复密钥更新时…
    将是sql端的答案
    <?php 
    
    //set the headers to be a json string
    header('content-type: text/json');
    
    //no need to continue if there is no value in the POST IDAlim
    if(!isset($_POST['IDAlim']))
        echo json_encode(array('non' => 'POSTError'));
    
    
    
    //Variable for db connection
    $host="localhost";
    $user="root";
    $pass="";
    $dbname="aliments";
    
    try
      {  
        $dbcon = new PDO("mysql:host={$host};dbname={$dbname}",$user,$pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
    
        $query = $dbcon->prepare('SELECT nom FROM tblaliments WHERE nom = :nomAlim');
    
        $query->bindParam(':nomAlim', $_POST['IDAlim']);
    
        $query->execute();
    
        //return the json object containing the result of if the IDAlim exists or not. The $.post in my jquery will access it.
    echo json_encode(array('exists' => $query->rowCount()));
      }
      catch (Exception $e)
      {
        echo json_encode(array('non' => 'PDOError'));
      }
    ?>