[英]mysql update statement always inserts
我有這段代碼,如果數據庫中已經有$ mail,我想更新,如果沒有,則要插入,但是無論如何,它總是插入,如果該郵件已經存在,它會插入一條包含相同郵件的新行。 請幫助我,這是代碼:
<?php
session_start();
include '../conexion.php';
$nombre=$_POST['Nombre'];
$apellido=$_POST['Apellido'];
$mail=$_POST['Mail'];
$telefono=$_POST['Telefono'];
$ultimaventa=$_POST['Numeroventa'];
$totalcomprado=0;
$ultimomonto=$_POST['Total'];
$resultado=mysqli_query($con,"select * from clientes")or die(mysqli_error($con));
$existe=false;
while($f=mysqli_fetch_array($resultado)){
if($f['Mail']!=$mail){
$totalcomprado=$ultimomonto;
$existe=false;
}else{
if($f['Mail'==$mail]){
$totalcomprado=$f['totalcomprado']+$ultimomonto;
$existe=true;
}
}
}
if($existe==false){
mysqli_query($con,"insert into clientes(nombre,apellido,Mail,telefono,ultimaventa,ultimomonto,totalcomprado)values(
'".$nombre."','".$apellido."','".$mail."','".$telefono."','".$ultimaventa."','".$ultimomonto."','".$ultimomonto."')")or die(mysqli_error($con));
}
if($existe==true){
mysqli_query($con,"update clientes SET nombre='".$nombre."', apellido='".$apellido."',Mail='".$mail."',telefono='".$telefono."',ultimaventa='".$ultimaventa."',ultimomonto='".$ultimomonto."',totalcomprado='".$totalcomprado."' WHERE Mail='".$mail."'")or die(mysqli_error($con));
}
如果不小心,您的if(bool) {} else if (!bool) {}
很容易導致錯誤。 在這些情況下,只需使用else語句:
<?php
session_start();
include '../conexion.php';
$nombre = $_POST['Nombre'];
$apellido = $_POST['Apellido'];
$mail = $_POST['Mail'];
$telefono = $_POST['Telefono'];
$ultimaventa = $_POST['Numeroventa'];
$totalcomprado = 0;
$ultimomonto = $_POST['Total'];
$resultado = mysqli_query($con, "select 1 from clientes WHERE Mail='" . mysqli_real_escape_string($con, $mail) . "'") or die(mysqli_error($con));
$existe = mysqli_num_rows($resultado) > 0;
if ($existe) {
mysqli_query($con, "UPDATE clientes SET nombre='" . $nombre . "', apellido='" . $apellido . "',Mail='" . $mail . "',telefono='" . $telefono . "',ultimaventa='" . $ultimaventa . "',ultimomonto='" . $ultimomonto . "',totalcomprado=totalcomprado+'" . mysqli_real_escape_string($con, $ultimomonto) . "' WHERE Mail='" . $mail . "'") or die(mysqli_error($con));
} else {
mysqli_query($con, "INSERT INTO clientes(nombre, apellido, Mail, telefono, ultimaventa, ultimomonto, totalcomprado)values('" . $nombre . "','" . $apellido . "','" . $mail . "','" . $telefono . "','" . $ultimaventa . "','" . $ultimomonto . "','" . $ultimomonto . "')") or die(mysqli_error($con));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.