2014-04-01 32 views
0

我搜索了很多,但找不到我的解决方案。我是新来的PHP,所以我希望我能清楚地解释我的问题。继续IF语句后的过程(不管条件如何),php

我试图建立一个系统,允许用户更新他/她的信息。 在表单中有一些输入是;用户名,电子邮件,新旧密码...

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

所以我想,如果它是空白进行检查,并保持过程,无论结果的工作,如果用户名是不是空白的用户名输入。 通过这种方式我可以只更改表格,只更改/键入输入。

我该如何做到这一点? PS:我没有编写完整的代码,因为至少有10个输入和3个选择。我尝试了很多嵌套的if,elseif,else语句,所以我尝试的代码非常复杂和冗长。

我只是不知道是否有保留的过程之后去的方式是“if语句”,即使条件为真。

UPDATE

我尝试使用只是如果,我期待该进程将继续,但,例如,如果我留为空白的用户名,然后输入电子邮件,它更新email.But如果用户名输入键入并输入电子邮件;它只是更新用户名。

可能是什么问题?

+0

任何* *将被处理,无论它是否是真的。 – George

+1

好吧,这基本上是如何,如果其他块工作。如果代码在你的if语句之后没有继续,很可能是错误发生了 – giorgio

+1

@ICanHasCheezburger他确实关闭了它 - 大括号只在注释中。 –

回答

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。

你`如果()`语句后放(大括号外)
+0

我试图用mysqli更新变量,每个if语句中的bind_param我会尽量只做一次更新,就像您写的一样,并且我会写结果。 – ctarimli

0

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

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

+0

我已更新我的问题 – ctarimli

0

所以你有没有尝试过以下?

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

// Code here will still execute 

所以这里if语句会运行,如果它是真的,否则它只会跳过它。

ELSEIF会后,如果练练在下一个场景中去,但如果他们需要所有的运行,那么不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. 
+0

我有更新我的问题 – ctarimli

+1

所以我不认为这个问题是在if子句中,它更可能是在查询数据库或类似的。您可能需要在用于更新数据的查询中相互追加更改 – Oldek