2016-05-28 3 views
1

У меня есть этот PHP кодMySQL возвращает одну строку

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} 

это только дает мне одну строку. Поэтому я попытался напечатать значение htwinners на php-странице, и это дает мне эффективно только одну строку, поэтому я предполагаю, что проблема заключается в коде, когда он «копирует» данные из $ ht_history в новый $ htwinners, связывающий/заменяющий идентификатор пользователя с именем пользователя , выбирает только одну строку.

Заранее благодарим за ответы, я очень разбираюсь в php, но пытался найти похожие проблемы кода, но ничего не нашел, и этот код выглядит как я без ошибок. мои ограниченные знания, но, очевидно, я ошибаюсь.

ответ

1
  1. Изменить «если» до «а»
  2. Кроме того, необходимо изменить «$ децибел» на «$ запрос»
  3. Проверьте тип параметра для fetch_array. Он ожидает, что тип результата константа, которая представляет собой целое

while ($row = $query->fetch_array(MYSQLI_ASSOC)) {

+0

я упал, как я тупой, я попробовал все, кроме этого. Большое спасибо! –

+0

Нет проблем. Я также добавил примечание о параметре для fetch_array –

+0

. Я сделал только первый пункт, и он работает хорошо, не нужно 2 и 3. Не могли бы вы объяснить другие 2? –

Смежные вопросы