0

PHPBBでは、SQLを編集して、投稿で使用できるデータを取得しようとしています。標準クエリは、3つのテーブル(user_table、post_table、zebra_table)からデータを取得します。各行(投稿)について、PHPBBhtmlファイルを介して使用できる変数にデータを割り当てます。次に例を示します。

'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'

));

現在の「user_id」に応じて、「phpbb_profile_fields_data」テーブルから「pf_lol_summoner」値を取得しようとしています。

$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(クッキーに設定されている)を使用していると思います。誰か気づいた?

編集:echo $ row ['username']; 他のすべての値とともに、正常に機能します。

4

0 に答える 0