2017-10-01 3 views
0

Je vais avoir un jeu de résultats mysqli écrit dans un fichier CSV en PHP en utilisant le code suivantRestitution résultat mysqli dans le fichier CSV avec PHP

$result = mysqli_query($con, 'SELECT * FROM table'); 
$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

$fp = fopen('file.csv', 'w'); 
foreach ($row as $val) { 
fputcsv($fp, $val); 
} 

qui, d'après ce que je comprends, devrait produire une ligne separted virgule pour chaque rangée. Toutefois, le contenu du fichier CSV se compose d'une longue chaîne sans sauts de ligne. Une idée de comment obtenir un linebreak pour chaque ligne? Merci.

fclose($fp); 
+1

dans votre code actuel '$ row' est juste un tableau pour un enregistrement. En itérant dessus, vous avez une valeur scalaire dans '$ val'. –

Répondre

0

Vous devez effectuer une boucle jusqu'au dernier enregistrement et ajouter chaque enregistrement dans csv. changez votre code comme:

$result = mysqli_query($con, 'SELECT * FROM table'); 
$fp = fopen('file.csv', 'w'); 
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) 
{ 
fputcsv($fp, $row); 
} 
fclose($fp);