Php 更新在mysql中不起作用

Php 更新在mysql中不起作用,php,mysql,Php,Mysql,这是我的update.php代码,我想我写了一个错误的代码,但无法找出哪里做错了,只要告诉我,如果条件是这样,我可以使用吗 编辑--->我希望级别1仅更新级别1区域中的字段,其他所有字段应保持不变,但当我提交另一项内容时,这些字段变为空,一个级别用户无法看到其他级别用户隐藏的字段 if(!empty($_REQUEST['update'])){ $sql = "SELECT * FROM `tabl1` WHERE `ID` = ".$_REQUEST['update']; $

这是我的update.php代码,我想我写了一个错误的代码,但无法找出哪里做错了,只要告诉我,如果条件是这样,我可以使用吗


编辑--->我希望级别1仅更新级别1区域中的字段,其他所有字段应保持不变,但当我提交另一项内容时,这些字段变为空,一个级别用户无法看到其他级别用户隐藏的字段

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'];
}
最后加上

mysql_查询($sql)

有错误吗

更换它

$sql="UPDATE `table1` SET `IndexNo` = '$IndexNo',`ZoneID` = '$ZoneID'"; 
            if($userName =='admin' || 'level1')
            {
                 $sql .= ",`NameofCoordinator` = '$NameofCoordinator',`RegistrationSurveyDate` = '$RegistrationSurveyDate'";
            }

            if($userName =='admin' || 'level2')
            { 
                $sql .= ", `GridNumber` = '$GridNumber',`ESRCommandArea` = '$ESRCommandArea'";
            }
            if($userName =='admin' || 'level3')
            { 
                $sql .= ",`MobileNumber` = '$MobileNumber', `LandlineNumber` = '$LandlineNumber', `ConnectionCategory` = '$ConnectionCategory'"; 
            }
                $sql .= ",`Keyword` = '$Keyword', `StatusID` = '$StatusID', `Comment`='$Comment' WHERE `ID` = ".$_REQUEST['update'];


myql_query($sql) or die();
试试这个

 $sql=mysql_query("UPDATE `ocwconnections` SET `IndexNo` = '$IndexNo',`ZoneID` = '$ZoneID'
        `NameofCoordinator` = if($userName =='admin' || $userName == 'level1' ,'$NameofCoordinator' , ''),
        `GridNumber`    = if($userName =='admin' || $userName == 'level2' ,'$GridNumber' , ''),   
        `MobileNumber` = if($userName =='admin' || $userName == 'level3' ,$MobileNumber ,''),
        `Keyword` = '$Keyword', `StatusID` = '$StatusID' WHERE `ID` = ".$_REQUEST['update'] ");
或者如果你想像你做的那样分开做:

$sql=mysql_query("UPDATE `ocwconnections` SET `IndexNo` = '$IndexNo',`ZoneID` = '$ZoneID' ";
$sql .= " `NameofCoordinator` = if($userName =='admin' || $userName == 'level1' ,'$NameofCoordinator' , ''), ";
$sql .= " `GridNumber`    = if($userName =='admin' || $userName == 'level2' ,'$GridNumber' , ''), ";   
$sql .= " `MobileNumber` = if($userName =='admin' || $userName == 'level3' ,$MobileNumber ,''), ";
$sql .= " `Keyword` = '$Keyword', `StatusID` = '$StatusID' WHERE `ID` = ".$_REQUEST['update'] ");
注意:我已经在每一列中添加了
,当if station在条件中未返回true时,可以将其更改为要更新的值

编辑>

1) 首先,不要将post数据分配给变量,而是按原样使用。 2) 使用三元运算符代替if条件

检查下面的代码

如果(!empty($_请求['update'])){ $sql=“从
tabl1
中选择*,其中
ID
=”$\u请求['update']; $query=mysql\u查询($sql); $res=mysql\u fetch\u数组($query)


}

您在哪里编写了mysql_query()来执行查询?
Y NO WORK
没有足够的描述。请添加您得到的错误,以及结果是什么?我希望level1只更新level1区域中的字段,其他所有字段都应保持不变,但当我提交另一项内容时,它们变为空,一个级别用户无法看到另一个级别用户隐藏的字段,@user3283373我想我得到了你想要的,试试我编辑的答案(最后一个查询)
$sql=mysql_query("UPDATE `ocwconnections` SET `IndexNo` = '$IndexNo',`ZoneID` = '$ZoneID' ";
$sql .= " `NameofCoordinator` = if($userName =='admin' || $userName == 'level1' ,'$NameofCoordinator' , ''), ";
$sql .= " `GridNumber`    = if($userName =='admin' || $userName == 'level2' ,'$GridNumber' , ''), ";   
$sql .= " `MobileNumber` = if($userName =='admin' || $userName == 'level3' ,$MobileNumber ,''), ";
$sql .= " `Keyword` = '$Keyword', `StatusID` = '$StatusID' WHERE `ID` = ".$_REQUEST['update'] ");
   $sql=mysql_query("UPDATE `ocwconnections` SET `IndexNo` = '$IndexNo',`ZoneID` = '$ZoneID' , 
    `NameofCoordinator` = if($userName =='admin' || $userName == 'level1' ,'$NameofCoordinator' , `NameofCoordinator`),
    `GridNumber`    = if($userName =='admin' || $userName == 'level2' ,'$GridNumber' , `GridNumber`),   
    `MobileNumber` = if($userName =='admin' || $userName == 'level3' ,$MobileNumber ,`MobileNumber`),
    `Keyword` = '$Keyword', `StatusID` = '$StatusID' WHERE `ID` = ".$_REQUEST['update'] ");
$sql = "UPDATE `tabl1` SET `IndexNo` = '$_POST['IndexNo']',`ZoneID` = '$_POST['ZoneID']'"; 
$sql.= ($userName =='admin' || 'level1')?(",`NameofCoordinator` = '$_POST[\'NameofCoordinator\']'")
      :(($userName =='admin' || 'level2')?(`GridNumber` = '$_POST[\'GridNumber\']'")
      :(($userName =='admin' || 'level3')?(`MobileNumber` = '$_POST[\'MobileNumber\']'"):''));
$sql .= ",`Keyword` = '$Keyword', `StatusID` = '$_POST[\'StatusID\']' WHERE `ID` = ".$_REQUEST['update'];