Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment récupérer des données d'une base de données pour les afficher au format csv sur une page Web ?

Le code que vous avez fourni utilise la boucle pour enregistrer les données dans le fichier CSV. Comme vous n'avez pas besoin de l'enregistrer dans un fichier, vous devez remplacer cette boucle par des lignes d'impression de code sur votre sortie.

Selon votre code, vous devez remplacer cette pièce

$fp = fopen('books.csv', 'w');

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

avec par exemple ceci

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