2013-05-28 98 views
0

我想解決的問題是我想要統計同一用戶名在兩個或多個表中出現的次數。

$_SESSION['username']

First Table 
| id | username | date | 
| 1 | Mart |28-5-13| 
| 2 | farm |27-5-13| 
| 3 | Mart |29-5-13| 

Second Table 
| 1 | Mart |22-5-13| 
| 1 | Mart |25-5-13| 
| 1 | farm |24-5-13| 

讓我們來看看選擇,我想搜索需求的用戶名,我$_SESSION['username'] = 'Mart'

如何計算相同的用戶名「沃爾瑪」出現的次數兩張桌子?

是不是像?

$bloo = mysql_query('SELECT COUNT("username") FROM events AND Good WHERE username = "'.  mysql_real_escape_string($_SESSION['username']) . '"'); 
while ($row2 = mysql_fetch_array($bloo)) 

還是我在錯誤的軌道上?

任何幫助表示讚賞!謝謝

+1

數據庫或表? – Farkie

+0

[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 –

+0

您需要使用UNION來合併2個查詢的結果。爲每個表執行一個查詢。 – steven

回答

1

試試這個地方first_tablesecond_table是你提到的2個表(「對不起,1個數據庫2個表!」):

SELECT 
    SUM(c) 
FROM (
    SELECT COUNT(*) as c FROM first_table WHERE username = 'Mart' 
    UNION ALL 
    SELECT COUNT(*) as c FROM second_table WHERE username = 'Mart' 
) as tmp 
+0

你可以向我解釋這段代碼嗎?我沒有完全得到它.. – Innominatum

+0

計數在2表中的'瑪特'用戶名出現的次數,然後總結它,我認爲這是你需要的 – Stephan

+0

這是正確的@Stephan,謝謝 – Innominatum

0

所有數據庫在同一西弗斯與否?因爲我認爲分離服務器的最佳解決方案是使用Web服務......但如果不是,您只需從兩個查詢中添加兩個值即可。

Connect to multiple mysql DataBases

$dbh1 = mysql_connect($hostname, $username, $password); 
$dbh2 = mysql_connect($hostname, $username, $password, true); 

mysql_select_db('database1', $dbh1); 
mysql_select_db('database2', $dbh2); 

$res1 = mysql_query('select count(*) from tablename WHERE username="username"', $dbh1); 
$res2 = mysql_query('select count(*) from tablename WHERE username="username', $dbh2); 

$val1 = mysql_fetch_row($res1); 
$val2 = mysql_fetch_row($res2); 

$sum = $val1[0] + $val2[0]; 
+0

他的意思是表,而不是DB的 – Farkie