it-swarm-tr.com

Tek satırlı bir sonuç kümesi html tablosu olarak nasıl yazdırılır?

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

3
saibbyweb

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

10
Lodder

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>';
}
0
mickmackusa