我搜索了很多但找不到我的解决方案。我是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,我期待这个过程将继续,但是,例如;如果我留空了用户名并输入电子邮件,它会更新电子邮件。但是如果输入了用户名输入并且输入了电子邮件;它只是更新用户名。
可能是什么问题?
答案 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一起使用。