2016-02-12 173 views
1

我正在试图创建一个带有IF条件的MySQL UPDATE语句。带`IF`条件的MySQL`UPDATE`语句

我想更新用户的详细信息,如果电子邮件和用户名不重复或在数据库中找到。

我坚持用这个代码:

<?php 

include "connection.php"; 
$user = $_REQUEST['user']; 
$em  = $_REQUEST['email']; 
$id  = $_REQUEST['id_user']; 

//Check Email in Database 
$query = mysqli_query($con,"SELECT username, email from `user` where id_user = '$id'"); 
$result = mysqli_fetch_object($query); 

if (strtolower(trim($query->email)) == strtolower(trim($em)) 
    || strtolower(trim($user->username)) == strtolower(trim($user)) 
) { 
    //next to condition username 
} else { 
    $data_email = mysqli_query($con,"select email from user where em='".$em."'"); 
    $total_email = mysqli_num_rows($data_email); 

    if($total_email > 0) { 
     echo "Email Not Available"; 
    } else { 
     //next to condition username 
    } 
} 

//Check Username in Database       
$data_us_user = mysqli_query($con,"select username from user where id_user='".$id."'"); 
$us_user = mysqli_fetch_object($data_us_user); 
if (strtolower(trim($us_user->username))==strtolower(trim($user))) { 
    //next to query update 
} else { 
    $data_username = mysqli_query($con,"select username from user where username='".$em."'"); 
    $total_username = mysqli_num_rows($data_username); 
    if($total_username > 0) { 
     echo "Username Not Available"; 
    } else { 
     //next to query update 
    } 
} else { 
    //Finally Query Update 
    mysqli_query($con,"update user set username='".$user."',em='".$em."' where id_user='".$id."' "); 
    echo "OK"; 
} 
+0

您的脚本是否有效?如果不是,那么错误是什么? – Panda

+0

我想要通过condtion电子邮件和用户名,这个脚本执行查询 –

回答

2

下面的PHP脚本将检查

  • 如果用户的更新电子邮件和更新的用户名是相同的
  • 如果用户的新的电子邮件地址和用户名已被其他用户
  • 如果这两个条件都不满足,用户的详细信息将被更新

PHP代码:

<?php 

include "connection.php"; 
$user = $_REQUEST['user']; 
$em  = $_REQUEST['email']; 
$id  = $_REQUEST['id_user']; 

//Getting user' details in database 
$query = mysqli_query($con, "SELECT username, email from `user` where id_user = '$id'"); 
$result = mysqli_query($query); 

//Query to find if email exists 
$query2 = mysqli_query($con,"SELECT `email` from `user` WHERE em = '$em'"); 
$result2 = mysqli_num_rows($query2); 

//Query to find if username exists 
$query3 = mysqli_query($con,"SELECT `email` from `user` WHERE id_user = '$user"); 
$result3 = mysqli_num_rows($query3); 

while ($row = mysqli_fetch_row($result)){ 
    list($userfromdb, $emfromdb) = $row; 
} 

if (strtolower(trim($userfromdb)) == strtolower(trim($user))){ 

    //will return true if user's username is the same before updating 
    echo 'Username cannot be the same!'; 

} else if(strtolower(trim($emfromdb)) == strtolower(trim($em))) { 

    //will return true if user's email is the same before updating 
    echo 'Email cannot be the same!'; 

} else if($result2 > 0) { 

    echo "Email Not Available"; 

} else if($result3 > 0) { 

    echo "Username Not Available"; 

} else { 

    //Finally Query Update 
    mysqli_query($con, "UPDATE `user` set username = '$user',em = '$em' WHERE id_user = '$id'"); 

    //check if row updated successfully 
    $result4 = mysqli_affected_rows($con); 

    if ($result4 > 0) { 
     echo "Updated details successfully"; 
    } else { 
     echo "An error occurred while updated details."; 
    } 

} 

?> 

这应该工作,谢谢!

+0

@MuhamadRidwansyah那么,这是否解决您的问题? – Panda

+0

等我试试,这段代码 –

+0

工作,谢谢broo –

0
$data_user= mysqli_query($con,"select email,username from user where id_user='".$id."'"); 

$userdetail = mysqli_fetch_object($data_user); 
if (strtolower(trim($userdetail->email))==strtolower(trim($em)) || strtolower(trim($userdetail->username))==strtolower(trim($user))) 
    { 
     return "error message"; 
    }else{ 
     //your update method here 
    } 
0

如果指定列相关消息不关注,

<?php 
include "connection.php"; 
$user = $_REQUEST['user']; 
$em  = $_REQUEST['email']; 
$id  = $_REQUEST['id_user']; 
$data_us_em  = mysqli_query($con,"select count(email) as count from user where id_user='".$id."' OR em='".$em."' OR username='".$em."'"); 
if($data_us_em) 
{ 
    $us_em   = mysqli_fetch_assoc($data_us_em); 
    $count=$us_em['count']; 
    if($count) 
    { 
     echo 'Can not update'; 
    }else 
    { 
     mysqli_query($con,"update user set username='".$user."',em='".$em."' where id_user='".$id."' "); 
     echo "OK"; 
    } 
} 
?>