我有这个代码,我想更新如果$ 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));
}
答案 0 :(得分:0)
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));
}