2011-01-31 34 views
1

我有一个更新的用户名,密码,电话,usergenerated ID等的更新脚本执行更新脚本,因此,可以说用户决定改变他/她的电话,但不是用户名。但是当他们去编辑他们的信息时,上面提到的所有字段都出现在表单中。因此,也会随用户想要更改的内容一起提交。所以我使用下面的代码来检测。因此,如果该字段中的用户名与从会话中拉出的用户名相匹配,则表示可以继续,如果不是则打印该用户名已被占用。但问题是我必须运行这个查询两次,一次为用户名,一次为用户唯一的id。当更新脚本位于页面的底部时,它会变得更加复杂。下面的代码会检测到它,但它们会停止在回声中。那么,我该如何让代码检查这些条件,然后在成功完成后指向更新查询。只有在所有检查完成

检查1:

if ($username == $_POST['username') { 
    echo "Good to go"; 
} else { 
    echo "already in use"; 
} 

检查2:

if ($usergenid == $_POST['usergenid') { 
    echo "Good to go"; 
} else { 
    echo "already in use"; 
} 
+2

你可以换一种说法,读了两遍,而且不知道你的actully要求。 – 2011-01-31 05:45:39

+0

对不起Dagon。现在编辑。 – AAA 2011-01-31 05:50:29

回答

1

也许我误解的问题,但可以嵌套你的条件是什么?

原始

$result = null; 

if($username == $_POST['username']) 
{ 
    if($usergenid == $_POST['usergenid']) 
    { 

     /* perform update to user */ 
     $sql = 'UPDATE users SET username = ' . $_POST['username'] . ' WHERE id = ' . $_POST['usergenid']; 
     if(mysql_query($sql)) 
     { 
     $result = 'User updated'; 
     } 
     else 
     { 
     $result = 'Update failed'; 
     } 

    } 
    else 
    { 
     $result = 'User id already in use'; 
    } 
} 
else 
{ 
    $result = 'Username already in use'; 
} 

return $result; 

更新的用户名,如果匹配的user_id

$result = null; 

if($usergenid == $_POST['usergenid']) 
{ 
    if($username != $_POST['username']) 
    { 

     /* perform update to user */ 
     $sql = 'UPDATE users SET username = ' . $_POST['username'] . ' WHERE id = ' . $_POST['usergenid']; 
     if(mysql_query($sql)) 
     { 
     $result = 'username updated'; 
     } 
     else 
     { 
     $result = 'update failed'; 
     } 

    } 
    else 
    { 
     $result = 'username is the same, no update performed'; 
    } 
} 
else 
{ 
    $result = 'user id does not match'; 
} 

return $result; 
相关问题