MySQL返回一行

时间:2016-05-28 10:15:14

标签: php html mysql loops row

我有这个PHP代码

if ($settings['ht_showlastwinners'] == 'yes') {
    $query = $db->query('SELECT * FROM ht_history ');


    if ($row = $db->fetch_array( $query )) {
        $row['username'] = $db->fetchOne('SELECT username FROM members WHERE id=' . $row['user_id'] );
        $htwinners[] = $row;
    }

    $smarty->assign( 'htwinners', $htwinners );
}

在.tpl文件上我使用

  {section name=w loop=$htwinners}
            <tr>
                <td>{$htwinners[w].username}</td>
                <td>{$htwinners[w].bet}</td>
                <td>${$htwinners[w].win}</td>
            </tr>
            {/section}

它只给我一排。所以我试图在php页面中打印htwinners的值,它实际上只给我一行,所以我想问题是代码,当它&#34; copy&#34;新的$ htwinners中的$ ht_history数据将用户ID与用户名相关联,只获取一行。

在此先感谢您的回答,我在php上实际(不是很多),我试图寻找类似的代码问题,但没有找到任何东西,这个代码我看起来像我没有对我的知识有限的错误,但显然我错了。

1 个答案:

答案 0 :(得分:1)

  1. 改变&#34;如果&#34; &#34;而#34;
  2. 您还需要更改&#34; $ db&#34;到&#34; $ query&#34;
  3. 检查fetch_array的参数类型。它期望结果类型常量是整数
  4. while ($row = $query->fetch_array( MYSQLI_ASSOC )) {