Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como recuperar dados do banco de dados para exibi-los no formato csv em uma página da web?


O código que você forneceu usa o loop para salvar os dados no arquivo CSV. Como você não precisa salvá-lo em um arquivo, precisará substituir esse loop por algumas linhas de impressão de código em sua saída.

De acordo com o seu código, você precisa substituir esta peça
$fp = fopen('books.csv', 'w');

while($row = mysqli_fetch_assoc($result))
{
    fputcsv($fp, $row);
}

com por exemplo este
while($row = mysqli_fetch_assoc($result)) { 
    //we need to split your message into array
    $csvRows = explode("\n", $row['message']);

    $head = [];
    if (array_key_exists(0, $csvRows)) {
        $head = explode(' ', trim($csvRows[0]));
    }

    $data = [];
    for ($i = 1; $i < count($csvRows); $i++) {
        $data[] = explode(' ', trim($csvRows[$i]));
    }

    //print recognized headers
    echo '<table width="100%"><tr>';
    foreach ($head as $h) {
        echo "<th>{$h}</th>";
    }
    echo '</tr>';

    //print your csv row as table row
    foreach ($data as $r) {
        echo '<tr>';
        foreach ($r as $v) {
            echo "<td>{$v}</td>";
        }
        echo '</tr>';
    }
    echo '<table>';
}