0

mysql テーブルからデータ (プレーヤー ID) を取得する PHP スクリプトが必要です (これまでのところ、その方法はわかっています)。そのプレーヤー ID (1 ~ 5 桁の数字) を使用して、別のテーブルで対応するプレーヤー名を見つけます。

基本的に、どのプレーヤーがどのメッセージを Web サイトに投稿したかを表示する必要があります。

スクリプトは次のとおりです。

<?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 を取得し、それを使用して別のテーブルで対応する名前を見つけ、対応する名前を表示する必要があります。

これを行うにはどの関数を使用しますか?

4

3 に答える 3

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
于 2012-11-30T10:29:50.340 に答える
1

1 番目の DB: FDB ---> テーブル 'user' --> 列 'user_id'

2 番目の DB: SDB ---> テーブル 'user' --> 列 '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
于 2012-11-30T11:08:18.697 に答える
0

JOINプレーヤー名と ID を設定するテーブルを使用して mysql クエリを実行します。

于 2012-11-30T10:30:04.600 に答える