it-swarm-id.com

Bagaimana cara mencetak hasil baris tunggal yang ditetapkan sebagai tabel html?

Saya melakukan kueri basis data seperti ini:

$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>

Output yang saya dapatkan terlihat seperti ini:

Array ([0] => any_username [1] => val_of_col1 [2] => val_of_col2 [3] => val_of_col3)

Bagaimana cara mengubahnya menjadi tabel HTML?

3
saibbyweb

Coba ini:

$rows = $db->loadrow();

echo '<table>';
echo '<tr>';  
   foreach($rows as $row) {
       // display your results here
   }
echo '</tr>';
echo '</table>';

Anda pertama-tama menggema struktur tabel dasar dan kemudian menampilkan hasil Anda

10
Lodder

Hanya untuk menjernihkan kesalahpahaman tentang skrip dalam pertanyaan ...

$result = $db->loadResult(); tidak memiliki peran aktif/diperlukan untuk dimainkan dalam proses. $result Tidak dapat digunakan setelah dideklarasikan dan tidak "mengatur" loadRow().

Adapun cara menyuarakan setiap nilai kolom, saya akan merekomendasikan implode() sebagai metode yang paling ringkas. Dalam melakukannya, tidak masalah jika Anda membangun set hasil Anda dari loadRow() atau loadAssoc() karena implode() akan mengabaikan kunci. Yang penting adalah kolom yang Anda tulis dalam klausa SELECT Anda - ini akan menentukan kolom mana yang disajikan. Anda tidak mungkin ingin menampilkan SEMUA kolom sehingga * Harus ditukar dengan deklarasi kolom literal (baik sebagai string yang dipisahkan koma atau array string). Cuplikan yang akan diikuti akan bekerja dengan sempurna walaupun Anda hanya memilih satu kolom (dan menghasilkan kumpulan hasil satu dimensi).

$db->loadRow() dengan 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>';
}

Jika Anda ingin menampilkan baris judul kolom, maka gunakan loadAssoc() untuk menghasilkan set hasil. Jika Anda ingin menyesuaikan satu atau lebih judul kolom yang akan dicetak ke layar, gunakan "alias kolom" yang sesuai dalam klausa SELECT dari kueri Anda.

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