0

2 つの異なるテーブルに対してログイン資格情報を確認しようとしていますが、ユーザーが存在しないというクエリが何度も返されます。私が何をしているのかを説明しようとします...

customers顧客データのみを格納するというテーブルがあります。admins管理者のみの資格情報を格納するという別のテーブルがあります。

管理者が顧客と同じログイン画面を使用してサイトにログインできるようにしたいと考えています。ユーザーがログインすると、システムはユーザーが管理者であることを認識し、サイト上の製品データを管理するための適切なウィジェットを表示します。

adminsテーブルにダミー ユーザーを挿入し、次のクエリを実行しました。

    $sql = mysql_query("SELECT EXISTS(
    SELECT 1 FROM `customers` WHERE `email` = 'johndeere@whatever.com' AND `password` = 'password'
    UNION
    SELECT 1 FROM `admins` WHERE `Email` = 'johndeere@whatever.com' AND `Password` = 'password'
    )");
    $result = @mysql_query($sql);
    if(!$result) {
        echo "User doesn't exist!";
    } else {
        echo "User exists!";
    }

このクエリは、ユーザーがテーブルに存在することがわかっているときに、「ユーザーが存在しません」と言って戻ってきadminsます。私は非常に単純なものが欠けていると確信しており、誰かが私を助けてくれることを望んでいました。

私はまだ mySQL と PHP にかなり慣れていませんが、すぐに習得しています。これは、これまでのところ、修正または解決できなかった唯一の問題です。よろしくお願いいたします。前もって感謝します。

4

1 に答える 1

0

どうして使わないの?

SELECT 1 from dual where EXISTS(
    SELECT 1 FROM `customers` WHERE `email` = 'johndeere@whatever.com' AND `password` = 'password'
    UNION
    SELECT 1 FROM `admins` WHERE `Email` = 'johndeere@whatever.com' AND `Password` = 'password'
);

元のクエリを使用する場合、クエリは 0(false)、1(true) を返します。これらの値を確認する必要があります。

!$result天気のクエリが合法かどうかを示すだけなので使用できません。データを取得する必要があります。

これを参照してください: http://www.php.net/manual/en/function.mysql-query.php

于 2012-08-29T18:33:47.503 に答える