我在 php 和 javascript 中创建了一个系统,用户可以在其中输入一定数量的字符(5)并自动更新 mysql 中 db 中的一个单元格,但是有一个问题......系统时不时地不会计数+2 而不是 +1,我将发布代码
$sql=mysql_query("select * from bare");
while($row=mysql_fetch_array($sql))
{
//se voglio fare sanitizer $name = mysql_real_escape_string($_POST['name']);
$id= $row['id'];
$cab=$row['cab'];
$qty=$row['qty'];
//echo "$id $cab $qty <br/>";
if(isset($_POST['submitbar']))
$name = $_POST['name'];
{
if( $name == $cab) {
echo '<p>';
$nqty = $qty+1;
mysql_query("UPDATE bare SET qty = $nqty WHERE cab = '$cab'");
echo "Hai aggiunto 1 elemento a $cab. Ora $cab vale $nqty";
echo '</p>';
} else {
//echo '<p>Non corrisponde a nessun codice a barre nel database<p>';
}
}
}
?>
<h1>Aggiorna le quantità utilizzando il Barcode</h1>
<form id="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input id="seleziona" type="text" name="name"><br>
<input type="submit" name="submitbar" value="Invia"><br>
</form>
<!--<script type="text/javascript">
$(function() {
$('input').charCount(25);
});
</script> -->
<script type="text/javascript">
//seleziona input automatico
$(document).ready(function(){
$('#seleziona').jqEasyCounter();
});
</script>
<script>
//invio automatico
$("#seleziona").keyup(function(){
if($(this).val().length == 5)
$('#form :submit').click();
})
</script>
我认为这个问题是
$nqty = $qty+1;
因为变量 $nqty 仍然在内存中......