2012-11-30 111 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