Php 相同的条形码意外地插入到我的数据库中
这是一个用于将条形码插入数据库的代码,但如果数据库中存在相同的条形码,我不需要再次插入相同的条形码,因此我像这样编码,但仍然会将相同的条形码插入我的数据库。这段代码中的错误是什么 我使用mysqli和Bootstrap来显示页面中的错误,该页面通过ajax从另一个名为product.php的页面执行,并在另一个名为showuser.php的页面中显示,因为它在一个表中得到更新,该表应该给出输出Php 相同的条形码意外地插入到我的数据库中,php,mysqli,Php,Mysqli,这是一个用于将条形码插入数据库的代码,但如果数据库中存在相同的条形码,我不需要再次插入相同的条形码,因此我像这样编码,但仍然会将相同的条形码插入我的数据库。这段代码中的错误是什么 我使用mysqli和Bootstrap来显示页面中的错误,该页面通过ajax从另一个名为product.php的页面执行,并在另一个名为showuser.php的页面中显示,因为它在一个表中得到更新,该表应该给出输出 <?php include('conn.php'); if(i
<?php
include('conn.php');
if(isset($_POST['add'])){
$proname=$_POST['product'];
$bar=$_POST['barcode'];
$war=$_POST['warranty'];
$gar=$_POST['guarranty'];
$amount=$_POST['amount'];
$id = $_POST['cusid'];
$date = $_POST['date'];
$check = "SELECT * FROM warranty_update WHERE battery_serial = '$bar'";
$rs = mysqli_query($con,$check);
$data = mysqli_fetch_array($rs, MYSQLI_NUM);
if($data[0] > 1) {
?>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<h3 align="center"><i class=" glyphicon glyphicon-warning-sign"></i><br>
<br>
Sorry Barcode Already Been Inserted !<br><br>
Please Go Back</h3>
<?php } else {
$datesplit = explode("-",$date);
$warranty = $datesplit[0];
$guarante = $datesplit[0];
$day = $datesplit[1];
$month = $datesplit[2];
$fdate = strtotime($date);
$Gm=strtotime("+$gar Months",$fdate);
$wm=strtotime("+$war Months",$Gm);
$m1=date("Y-m-d", $Gm) ;
$m2 =date("Y-m-d", $wm) ;
$today = date("Y/m/d");
$expiry_warranty = $m2;
$expiry_guarante = $m1;
//mysql_query("INSERT INTO `cus_reg`(`reg_id`, `name`, `mobile`, `battery_serial`, `model`, `date`, `reg_by`, `warranty_expiry`, `waranty_span`,`guarantee_expiry`, `g_span`) VALUES (NULL,'$name','$mobile','$battery_serial','$vehicle_num','$date','$regby','$expiry_warranty', '$wmonth', '$expiry_guarante', '$gmonth')")==true or die(mysql_error);
//mysql_query("INSERT INTO `warranty_update`(`wa_id`, `cus_reg_id`, `new_barcode`, `date`) VALUES (NULL,LAST_INSERT_ID(),'$battery_serial','$today')");
mysqli_query($conn,"INSERT INTO `warranty_update`(`wa_id`, `reg_id`, `battery_serial`, `model`, `date`, `warranty_expiry`, `waranty_span`, `guarantee_expiry`, `g_span`, `amount`) VALUES (NULL,'$id','$bar','$proname','$today','$expiry_warranty','$war','$expiry_guarante','$gar','$amount')");
mysqli_query($conn,"INSERT INTO `replacements`(`r_id`, `reg_id`, `wa_id`, `new_barcode`, `date`) VALUES ('NULL','$id',LAST_INSERT_ID(),'$bar','$today')");
?>
<!--header("refresh:1;url=home.php");-->
<h3 align="center"><i class=" glyphicon glyphicon-warning-sign"></i><br>
<br>
Data Successfully Inserted !
<?php }
}
?>
不完全确定,但您应该像这样检查数组中的条目:
if (count($data) > 0)
不完全确定,但您应该像这样检查数组中的条目:
if (count($data) > 0)
最好的方法是通过SQL定义条形码的唯一约束。
不管怎样,我认为你是在错误的模式下评估情况的。
$data是一个数组,因此您应该使用:sizeof检查其大小
所以:if(sizeof($data)>1){
实现这一点的最佳方法是通过SQL定义条形码的唯一约束。
不管怎样,我认为你是在错误的模式下评估情况的。
$data是一个数组,因此您应该使用:sizeof检查其大小
所以:if(sizeof($data)>1){
关于重复密钥更新我能得到什么u man??关于重复密钥更新我能得到什么u man??请告诉我如何定义唯一约束但为什么它不起作用?你能打印$data的值吗?查询是否正确并正在检索某些数据?请在执行查询后插入HTML文件进行检查。在成瘾中,你可以在这样的表格上有一个独特的约束:**Altable table PursithyUpage添加唯一(BATTYYSY系列)**如果你可以,考虑阅读这一页:有一个美好的一天。它工作了,但我不能为相同的条形码插入提供错误提示。请告诉我如何定义唯一约束但为什么它不工作?你能打印$data的值吗?查询是否正确并正在检索某些数据?请在执行查询后插入HTML文件进行检查。在成瘾中,你可以在这样的表格上有一个独特的约束:**Altable table PursithyUpage添加唯一(BATTYYSY系列)**如果你可以,考虑阅读这页:有一个美好的一天。YUP我给它作为唯一的,它工作,但我不能给一个错误笔记相同的条形码插入。