par
olill » 17 oct. 2018, 20:31
Bonjour,
Grâce à ce code ci-dessous, je peux exporter un résultat de requête sur une base (en local pour le moment) dans un fichier texte, mais le souci est qu'il est présenté avec les noms des colonnes sur une ligne suivi des résultats , sans retour entre chaque donnée.
/* Attempt MySQL server connection. */
$connection = mysqli_connect($database_server, $database_username, $database_password, $database_name);
// Check connection
if($connection === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$query = "SELECT deg_0,deg_1,deg_2,deg_3,deg_4,deg_5,deg_6,deg_7,deg_8,deg_9,deg_10 FROM degree WHERE id = 1";
$result = mysqli_query($connection, $query);
$number_of_fields = mysqli_num_fields($result);
$headers = array();
for ($i = 0; $i < $number_of_fields; $i++) {
$headers[] = mysqli_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result) {
header('Content-Type: text/txt');
header('Content-Disposition: attachment; filename="export.txt"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = $result->fetch_array(MYSQLI_NUM)) {
fputcsv($fp, array_values($row));
}
die;
}
function mysqli_field_name($result, $field_offset)
{
$properties = mysqli_fetch_field_direct($result, $field_offset);
return is_object($properties) ? $properties->name : null;
}
Me retourne ceci :
Code : Tout sélectionner
deg_0,deg_1,deg_2,deg_3,deg_4,deg_5,deg_6,deg_7,deg_8,deg_9,deg_10
20,20,20,20,19,19,19,17,17,17,17
J'ai déjà essayé plusieurs changements de variables dans ce fichier, mais impossible de mettre quoi que ce soit dans le format que je souhaite.
En fait, j'aimerais retrouver les résultats ligne par ligne, sans virgule ni espace.
Comment faire ?
Un autre script plus simple disponible ?
Merci
Bonjour,
Grâce à ce code ci-dessous, je peux exporter un résultat de requête sur une base (en local pour le moment) dans un fichier texte, mais le souci est qu'il est présenté avec les noms des colonnes sur une ligne suivi des résultats , sans retour entre chaque donnée.
[PHP]/* Attempt MySQL server connection. */
$connection = mysqli_connect($database_server, $database_username, $database_password, $database_name);
// Check connection
if($connection === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$query = "SELECT deg_0,deg_1,deg_2,deg_3,deg_4,deg_5,deg_6,deg_7,deg_8,deg_9,deg_10 FROM degree WHERE id = 1";
$result = mysqli_query($connection, $query);
$number_of_fields = mysqli_num_fields($result);
$headers = array();
for ($i = 0; $i < $number_of_fields; $i++) {
$headers[] = mysqli_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result) {
header('Content-Type: text/txt');
header('Content-Disposition: attachment; filename="export.txt"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers);
while ($row = $result->fetch_array(MYSQLI_NUM)) {
fputcsv($fp, array_values($row));
}
die;
}
function mysqli_field_name($result, $field_offset)
{
$properties = mysqli_fetch_field_direct($result, $field_offset);
return is_object($properties) ? $properties->name : null;
}[/PHP]
Me retourne ceci : [code]deg_0,deg_1,deg_2,deg_3,deg_4,deg_5,deg_6,deg_7,deg_8,deg_9,deg_10
20,20,20,20,19,19,19,17,17,17,17
[/code]
J'ai déjà essayé plusieurs changements de variables dans ce fichier, mais impossible de mettre quoi que ce soit dans le format que je souhaite.
En fait, j'aimerais retrouver les résultats ligne par ligne, sans virgule ni espace.
Comment faire ?
Un autre script plus simple disponible ?
Merci