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結果を取得しますが、管理者またはスーパーバイザーを選択した場合でも、常に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 に答える