まず、なぜ 4 つのテーブルがあるのですか? ログインタイプフィールドで1を持たないのはなぜですか??
一般的な規則は、複数のテーブルでも 1 つのテーブルでも同じです。ユーザー名/メールアドレスを確認してから、パスワードを確認します。
ユーザー名の電子メール アドレスについて、テーブルのクエリを開始します。結果を数えます。それらが結果である場合は、パスワードが一致するかどうかを確認し(使用している暗号化があれば何でも)、ログインします。結果がない場合は、そのユーザー名/電子メールに一致する人がいないというメッセージをユーザーにスローします。パスワードが一致しない場合は、そのことを伝えます。
私はあなたのためにそれを書くつもりはありませんが、ここにその要点があります:
$query = mysql_query("CHECK FOR EMAIL ADDRESSES OR USERNAMES"); // Just query multiple tables if you're going to do it this way (I'd still use the one though)
$count = mysql_num_rows($query);
if ($count > 0) { // Email address exists
// Check the passwords match up
if (PASSWORDS MATCH) {
// Do your login here
} else {
// Password wrong error
}
} else {
// No username error here
}