在 PHPBB 中,我正在尝试编辑 SQL 以获取更多数据,我可以在帖子中使用这些数据。标准查询从 3 个表(user_table、post_table 和 zebra_table)中获取数据。对于每一行(帖子),它将数据分配给可通过 PHPBB html 文件使用的变量,例如:
'username' => $row['username'],
所以在 HTML 文件中,你可以使用 {postrow.USERNAME},它会显示当前循环/帖子的用户名。
标准查询如下所示:
$sql = $db->sql_build_query('SELECT', array(
'SELECT' => 'u.*, z.friend, z.foe, p.*',
'FROM' => array(
USERS_TABLE => 'u',
POSTS_TABLE => 'p',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(ZEBRA_TABLE => 'z'),
'ON' => 'z.user_id = ' . $user->data['user_id'] . ' AND z.zebra_id = p.poster_id'
)
),
'WHERE' => $db->sql_in_set('p.post_id', $post_list) . '
AND u.user_id = p.poster_id'
));
我正在尝试从“phpbb_profile_fields_data”表中提取“pf_lol_summoner”值,具体取决于它当前所在的“user_id”:
$sql = $db->sql_build_query('SELECT', array(
'SELECT' => 'u.*, pf.pf_lol_summoner, z.friend, z.foe, p.*',
'FROM' => array(
USERS_TABLE => 'u',
POSTS_TABLE => 'p',
),
'LEFT_JOIN' => array(
array(
'FROM' => array(ZEBRA_TABLE => 'z'),
'ON' => 'z.user_id = ' . $user->data['user_id'] . ' AND z.zebra_id = p.poster_id'
),
array(
'FROM' => array('phpbb_profile_fields_data' => 'pf'),
'ON' => 'pf.user_id = ' . $user->data['user_id']
)
),
'WHERE' => $db->sql_in_set('p.post_id', $post_list) . '
AND u.user_id = p.poster_id'
));
现在当while循环开始循环遍历行时,如果我回显:
echo $row['pf_lol_summoner'];
它为每个帖子显示我的“pf_lol_summoner”值,而不是每个人的值。我认为它使用了我的 user_id(在 cookie 中设置)。有人注意到什么吗?
编辑: echo $row['username']; 与所有其他值一起工作正常。