首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅当完成所有检查时才执行更新脚本

问仅当完成所有检查时才执行更新脚本
EN

Stack Overflow用户
提问于 2011-01-31 13:27:07
回答 1查看 146关注 0票数 1

我有一个更新脚本,可以更新用户名、密码、电话、用户生成的id等。因此,假设用户决定更改他/她的电话,但不更改用户名。但是当他们去编辑他们的信息时,上面提到的所有字段都会出现在表单上。因此,还会提交用户想要更改的内容。所以我使用下面的代码来检测它。因此,如果字段中的用户名与从会话中提取的用户名匹配,则表示可以继续,如果不匹配,则打印该用户名已被占用。但问题是我必须运行此查询两次,一次是针对用户名,另一次是针对用户的唯一id。此外,当Update脚本位于页面底部时,情况会变得复杂。下面的代码将检测到它,但它们将在echo处停止。那么,如何让代码检查这些条件,并在成功完成后指向更新查询。

检查1:

代码语言:javascript
复制
if ($username == $_POST['username') {
  echo "Good to go";
} else {
  echo "already in use";
}

检查2:

代码语言:javascript
复制
if ($usergenid == $_POST['usergenid') {
  echo "Good to go";
} else {
  echo "already in use";
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-31 16:03:13

也许我误解了这个问题,但你能嵌套你的条件吗?

原创

代码语言:javascript
复制
$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匹配,则更新用户名

代码语言:javascript
复制
$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;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4847898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档