我想要一个更新的严格条件,但它在这里不起作用。我的意思是如果level1用户登录并更新一个from并通过这个字段提交属于level2获取为空。 我来自用户级别并仅输入它们。隐藏字段也使用空值更新。有办法只更新用户级别字段而不影响隐藏字段。
if(!empty($_REQUEST['update'])){
$sql = "SELECT * FROM `tabl1` WHERE `ID` = ".$_REQUEST['update'];
$query = mysql_query( $sql );
$res = mysql_fetch_array($query);
$IndexNo= $_POST['IndexNo'];
$ZoneID = $_POST['ZoneID'];
$NameofCoordinator= $_POST['NameofCoordinator'];
$GridNumber= $_POST['GridNumber'];
$MobileNumber= $_POST['MobileNumber'];
$StatusID= $_POST['StatusID'];
$sql="UPDATE `tabl1` SET `IndexNo` = '$IndexNo',`ZoneID` = '$ZoneID'";
$sql .= if($userName =='admin' || 'level1'){ ",`NameofCoordinator` = '$NameofCoordinator'"; }
$sql .= if($userName =='admin' || 'level2'){ ", `GridNumber` = '$GridNumber'"; }
$sql .= if($userName =='admin' || 'level3'){ ",`MobileNumber` = '$MobileNumber'"; }
$sql .= ",`Keyword` = '$Keyword', `StatusID` = '$StatusID' WHERE `ID` = ".$_REQUEST['update'];
}
答案 0 :(得分:3)
请参阅http://www.php.net/manual/en/language.operators.logical.php:
$a || $b Or TRUE if either $a or $b is TRUE.
因此,$userName =='admin' || 'level3'
评估为($userName =='admin') || ('level3')
,由于'level3'
不是假的,因此总是评估为true
。
你可能想要的是
$userName == 'admin' || $userName == 'level3'