2016-02-12 3 views
1

Я пытаюсь создать инструкцию MySQL UPDATE с условием IF.Операция MySQL `UPDATE` с условием` IF`

Я хотел бы уточнить данные пользователя, если адрес электронной почты и имя пользователя не дублируются или не найдены в базе данных.

Я застрял с этим кодом:

<?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 скрипт будет проверять

  • IF обновленный адрес электронной почты пользователя и обновлять имя пользователя одинаковы
  • ЕСЛИ новый адрес электронной почты пользователя и имя пользователя уже используется другим пользователем
  • Если оба условия не выполняются, детали пользователя будут обновляться

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

wait Я пытаюсь, этот код –

+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"; 
    } 
} 
?> 
Смежные вопросы