2016-05-28 4 views
1

ich dieses PHP-CodeMySQL gibt eine Zeile

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); 
} 

wenn sie auf einer .tpl Datei i

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

es nur haben, gibt mir eine Zeile. Also habe ich versucht, den Wert von HTWINNER in PHP-Seite zu drucken, und es gibt mir effektiv nur eine Zeile, also das Problem ist der Code, wenn es Daten aus $ ht_history in den neuen $ htwinners kopiert, die Benutzer-ID mit Benutzernamen verbinden/ersetzen , holt nur eine Zeile.

Vielen Dank im Voraus für Antworten, ich bin eine praktische (nicht viel) auf PHP, ich habe versucht, für ähnliche Code-Probleme zu suchen, aber nichts gefunden und dieser Code habe ich wie ich ohne Fehler zu mein eingeschränktes Wissen, aber offensichtlich liege ich falsch.

Antwort

1
  1. Ändern "wenn" auf "während"
  2. Sie müssen auch "$ db" auf "$ query"
  3. Überprüfen Sie den Parametertyp für fetch_array. Er erwartet eine Konstante Ergebnistyp, die eine ganze Zahl

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

+0

ich, wie ich stumm fiel, ich alles versucht, außer dies. Wirklich Danke! –

+0

Keine Probs. Ich fügte auch eine Notiz über den Parameter für fetch_array –

+0

Ich habe nur den ersten Punkt und es funktioniert gut, keine Notwendigkeit 2 und 3. Können Sie die anderen 2 erklären? –