0

我的 PHP 代码中有这样的代码:

    <?php
    require('../../server.php');
    $role = strtoupper($_POST['role']);
    $pool = strtoupper($_POST['pool']);
    $psh = strtoupper($_POST['comp']);

    if($role = "POOL")
    {
        $query2 = "INSERT INTO m_login (email, password, role, company_id)
                            VALUES ('$email', '$pass', '$role', '$pool')";
    }
    else
    {
        $query2 = "INSERT INTO m_login (email, password, role, company_id)
                            VALUES ('$email', '$pass', '$role', '$psh')";
    }

    if (mysql_query($query2))
    {
        $whatdo = strtoupper("add user ").$id;
        include_once('../../serverlog.php');
        $querys = "INSERT INTO m_log (user_id, description, waktu) VALUES ('$user', '$whatdo', '$input')";
        if(mysql_query($querys))
        {
          echo'<script>alert("Penambahan data berhasil!");</script>
          <meta http-equiv="refresh" content="0; url=index.php" />';
        }
        else
        {
          echo mysql_error();
        }
    }
    else
    {
        echo'<script>alert("Failed!");</script> <br/>'.mysql_error().'<meta http-equiv="refresh" content="10; url=index.php" />';
    }
?>

我的问题是,为 query2 创建条件我错了吗?因为当我运行程序时,我的数据总是得到角色的 POOL 结果,虽然我选择了 Admin 或 Supervisor,但它总是返回 POOL

我用于在注册表单中选择角色。因此,当我选择选项 admin 时,它返回池,当我选择 spv 时,它返回池。

任何人都可以给我解决方案吗?

对不起,我的英语不好

4

3 回答 3

4

这是错误的,应该是

if($role == "POOL") {
  /*Code goes here*/
}

因为=会给POOL你的变量赋值$role,所以==用来比较,或者===比较相似的数据类型

于 2012-11-09T03:58:40.283 回答
3

=是赋值。==是比较。放if($role == "POOL"),它应该工作正常。

于 2012-11-09T03:58:46.257 回答
2

您关心分配if($role = "POOL")使用中的值==应该是if($role == "POOL")

=是赋值运算符,==相等运算符。

  1. = 是赋值运算符。b = 1 将设置变量 b 等于值 1。

  2. == 是相等运算符。如果左侧等于右侧,则返回 true,如果不相等,则返回 false

于 2012-11-09T04:01:47.463 回答