3つのテーブルで一致するかどうかをチェックするクエリ(以下)があります。3つのテーブルすべてに、列UIDとIPADDRESSがあります。3番目のテーブルにもUSERNAMEがあります。以下のクエリを変更して、変数$ usernameにIPアドレスと一致するユーザー名の一意のリストを入力するにはどうすればよいですか?
したがって、各テーブルでIPアドレスが一致するUIDは、2、3、6、6、23、2、6となる可能性があります。これは、複数のエントリがあり、誰かが他のIPをスプーフィングした可能性があるためです。私が欲しいのは、UID 2、3、6、23(一意のリスト)に一致するユーザー名を$usernameに入力するクエリです。私はMySQLとクエリにまったく慣れていないことを伝えなければなりません。クエリは次のとおりです。
error_reporting(E_ALL & ~E_NOTICE & ~8192);
$UAM = strtoupper($_SERVER['HTTP_USER_AGENT']);
$ips = strtoupper($_SERVER['REMOTE_ADDR']);
$myquery= "select sum(total)
FROM (SELECT count(*) as total,userid
FROM " .TABLE_PREFIX."memberviews v
where v.ipaddress = '$ips'
union all
SELECT count(*) as total,userid
FROM " .TABLE_PREFIX."membervisits v1
where v1.ipaddress = '$ips'
union all
SELECT count(*) as total,userid
FROM " .TABLE_PREFIX."user v3
where v3.ipaddress = '$ips'
)src";
$result = mysql_query($myquery);
$rowCount = mysql_num_rows($myquery);
$row = mysql_fetch_array($myquery);
$username = $row['userid'];
If($rowCount !=0){
$fp = fopen("logtext.txt", "a");
$DateOfRequest = date('m-d-Y H:i:s');
fwrite($fp, "Registration Attempt\n\nDate: . $DateOfRequest . \nMatched Member: . $username . \nWith User Agent: . $UAM . \nIP: . $ips . \n\n");
}
mysql_free_result($myquery);
現在、クエリはファイルを書き込むのと同じくらい機能します。すべての助けに感謝します:)