Ben böyle bir veritabanı sorgusu gerçekleştiriyorum:
$db = JFactory::getDbo();
$user = JFactory::getUser();
$query = $db->getQuery(true);
$query->select('*');
$query->from($db->quoteName('#__table_name'));
$query->where($db->quoteName('username') . " = ". $db->quote($user->username));
$db->setQuery($query);
$result = $db->loadResult();
$row = $db->loadrow();
print_r($row); </pre>
Aldığım çıktı biraz şöyle görünüyor:
Dizi ([0] => herhangi bir kullanıcı adı [1] => val_of_col1 [2] => val_of_col2 [3] => val_of_col3)
Nasıl bir HTML tablosu? dönüştürmek
Bunu dene:
$rows = $db->loadrow();
echo '<table>';
echo '<tr>';
foreach($rows as $row) {
// display your results here
}
echo '</tr>';
echo '</table>';
Önce temel tablo yapısını yankılayıp sonuçlarınızı görüntülersiniz
Sadece sorudaki senaryo hakkında olası bir yanlış anlama gidermek için ...
$result = $db->loadResult();
işleminde etkin/gerekli bir role sahip değil. $result
Bildirildikten sonra kullanılmıyor ve loadRow()
"ayarlanmıyor".
Her bir sütun değerini nasıl yankılayacağımıza gelince, en kısa yöntem olarak implode()
önereceğim. Bunu yaparken, sonuç kümenizi loadRow()
veya loadAssoc()
'den oluşturmanız önemli değildir çünkü implode()
tuşları yok sayar. Önemli olan SELECT yan tümcesine yazdığınız sütunlardır - bu tam olarak hangi sütunların sunulduğunu belirler. TÜM sütunları görüntülemek istemeniz olası değildir, bu nedenle *
Değişmez sütun bildirimleri için değiştirilmelidir (virgülle ayrılmış dize veya dizeler dizisi olarak). Yalnızca tek bir sütun seçseniz (ve tek boyutlu bir sonuç kümesi oluştursanız bile) izlenecek snippet kusursuz bir şekilde çalışacaktır.
$db->loadRow()
ile implode()
:
if (!$row = $db->loadRow()) { // declare and check
echo "No Row Found";
} else {
echo '<table>';
echo '<tr>';
echo '<td>' , implode('</td><td>', $row) , '</td>';
echo '</tr>';
echo '</table>';
}
Bir sütun başlığı satırı görüntülemek istiyorsanız, sonuç kümesini oluşturmak için loadAssoc()
kullanın. Ekrana yazdırılacak bir veya daha fazla sütun başlığını ayarlamak isterseniz, sorgunuzun SELECT yan tümcesinde bir "sütun takma adı" kullanın.
if (!$row = $db->loadAssoc()) { // declare and check
echo "No Row Found";
} else {
echo '<table>';
echo '<tr>';
echo '<th>' , implode('</th><th>', array_keys($row)) , '</th>';
echo '</tr>';
echo '<tr>';
echo '<td>' , implode('</td><td>', $row) , '</td>';
echo '</tr>';
echo '</table>';
}