我有一個查詢(下面)將檢查3個表中的匹配。所有3個表都有列UID和IPADDRESS;第三張表也有USERNAME。我怎樣才能改變下面的查詢來填充變量$ username與唯一的用戶名匹配的ipaddress列表?MYSQL聯合查詢查找另一個表?
因此,在每個表中,與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);
當前查詢的工作原理與寫入文件一樣多。所有的幫助表示讚賞:)
謝謝你,但我會失去我的計數那麼我不會?我的進一步檢查是看看是否至少有一個匹配被發現然後寫入文件,我將如何合併檢查,如檢查是否有是匹配還是不匹配,所以我可以觸發文件寫入? – Silo
如果它會生成一個唯一的用戶名列表,那很好,我可以檢查$ username爲空或零長度。 – Silo