2012-11-30 67 views
0

我需要一個php腳本,它可以從mysql表(我知道如何做到目前爲止)提取數據(玩家ID),然後使用該玩家ID( 1-5位數字)在另一個表格中查找相應的玩家名稱。PHP函數比較兩個表中的數據以合併到現有腳本

基本上我需要顯示哪個玩家在網站上發佈了哪條消息。

這裏的腳本:

<?php 
include('mysql_connection.php'); 

$c = mysqlConnect(); 

$locale = $_GET['locale']; 
$last_bulletins_id = $_GET['bulletins_id']; 

sendQuery ("set character_set_results='utf8'"); 
sendQuery ("set collation_connection='utf8_general_ci'"); 

if(strcmp($locale,"en") != 0) 
    $locale = "en"; 
$result = sendQuery("SELECT * FROM bulletins WHERE id > ".$last_bulletins_id." and locale = '".$locale."' ORDER BY id DESC LIMIT 10"); 
echo '<table width=\"100%\">'; 
while($row = mysql_fetch_array($result, MYSQL_NUM)) 
{ 
    echo '<tr><td width=\"100%\"><b>Author: </b></td></tr>'; 
    echo '<tr><td width=\"100%\"><b>Date: </b>'.$row[2].'</td></tr>'; 
    echo '<tr><td width=\"100%\">'.nl2br($row[4]).'</td></tr>'; 
    echo '<tr><td width=\"100%\"><hr style="height: 2px; border: none; background: #515151;"></td></tr>'; 
} 
echo '</table>'; 

mysqlClose($c); 

>

然而,消息行沒有球員的名字?只有他的ID。他的名字被保存在另一個數據庫中。所以我不知何故必須拉ID,使用它在另一個表中找到相應的名稱並顯示相應的名稱。

用什麼函數來做到這一點?

謝謝。

+0

是否在另一個數據庫或另一個表中的播放器名稱在同一個數據庫中?這個其他表格是如何定義的? –

回答

1

如果玩家的名字是在同一個數據庫,只是一個表,你可以使用這個

SELECT b.*, p.username 
FROM bulletins b 
join players p on p.user_id = b.user_id 
WHERE b.id > $last_bulletins_id 
     and b.locale = '$locale' 
ORDER BY b.id DESC 
LIMIT 10 
+1

即使它在另一個數據庫中(如OP聲明的),這仍然是正確的解決方案,只需稍作修改:'... FROM db1.bulletins b JOIN db2.players p ...'。也就是說,假設數據庫用戶可以訪問兩者。 – primo

+0

@primo謝謝你的提示。我不知道這是可能的,非常感謝。 –

0

一個連接在你的MySQL查詢與表,CEEP球員姓名和身份證

1
JOIN

第一DB:FDB --->表 '用戶' - >列 '的user_id'

第二DB:SDB --->表 '用戶' - >列中的 'USER_ID,USER_NAME'

SELECT FDB.user.user_id, SDB.user.user_name 
FROM FDB.user, SDB.user 
WEHRE FDB.user.user_id = SDB.user.user_id