在IF语句之后继续进程(无论条件如何),php

时间:2014-04-01 12:35:39

标签: php

我搜索了很多但找不到我的解决方案。我是php的新手,所以我希望我能清楚地解释一下我的问题。

我正在尝试构建一个允许用户更新其信息的系统。 表格中有一些输入;用户名,电子邮件,旧密码......

我想要实现的只是更新已更改的输入。 (空白输入将被忽略)

所以我希望检查用户名输入是否为空,并且如果用户名为空白,则无论结果如何都保持进程正常工作。 通过这种方式,我可以仅使用更改/输入的输入更新表。

我怎样才能实现这一目标?

if($username != "") {
    //update the username
}
// keep process going even if username condition is true.
if($email != "") {
    // update the email
}

PS:我没有写完整个代码,因为至少有10个输入和3个选择。我尝试了很多嵌套的if,elseif,else语句,所以我尝试的代码是如此复杂和冗长。

我只是想知道如果有一种方法可以让“if语句”之后的进程继续进行,即使条件为真。

更新

我尝试使用ifs,我期待这个过程将继续,但是,例如;如果我留空了用户名并输入电子邮件,它会更新电子邮件。但是如果输入了用户名输入并且输入了电子邮件;它只是更新用户名。

可能是什么问题?

3 个答案:

答案 0 :(得分:0)

PHP中,if statement以外的代码将被执行。

您提供的示例将同时检查if statements,并在statement为真的情况下执行代码。

答案 1 :(得分:0)

您是否尝试过以下操作?

if (!empty($username)) {
    // Do something to username
}

// Code here will still execute

所以这里if语句将运行,如果它是true,否则它将跳过它。

elseif必须追踪if并捕获下一个场景,但如果需要全部运行,那么就不要使用elseif

if ($condition) {
    // code to run if statement passes
} elseif ($condition) {
    // only checks the condition if the first if is not run
} else {
    // has no condition but only runs if all above does fail to run
}
// Code here will still run as long as the above does not cancel the script. As Fatals, exit() die() return etc.

答案 2 :(得分:0)

如果所有数据都在单个表users上更新,那么您可以使用输入数据动态生成更新命令,最后执行查询

<?php
$qry_update = "UPDATE `users` SET " ;
if($username != ""){ 
    $qry_update .= "`username` = '$username', ";
}
if($email != ""){
 $qry_update .= "`email` = '$email', ";
}
....
....

$qry_update = rtrim($qry_update, ',');

$qry = $qry_update." where idusers = $idusers "; 

// Execute the query
?>

以上是传统的做法。但最好将PDO与bind params一起使用。