如何从php将sql查询结果插入csv中的一行?

如何从php将sql查询结果插入csv中的一行?,php,mysql,sql,csv,Php,Mysql,Sql,Csv,以下代码将sql查询结果输出到csv文件中: 代码 <?php // Report all errors except E_NOTICE error_reporting(E_ALL ^ E_NOTICE); //connection file include("connection.php"); $query = 'SELECT resting_blood_sugar,serum_cholesterol,thalach,oldpeak,result,date fr

以下代码将sql查询结果输出到csv文件中:

代码

<?php
// Report all errors except E_NOTICE   
error_reporting(E_ALL ^ E_NOTICE); 

//connection file
include("connection.php");  

$query      = 'SELECT resting_blood_sugar,serum_cholesterol,thalach,oldpeak,result,date from hd_test WHERE patient_id = 2';         
$output = fopen('N:\oldpatientgraph.csv', 'w');
$result = mysqli_query($link,$query);

// loop over the rows, outputting them
while ($row = mysqli_fetch_assoc($result)) fputcsv($output, $row);

?>

输出

csv文件包含以下格式的输出:

1,1,1,1,1,11-1-2015第1行

2,3,1,4,2,1-1-2000第2行

然而,我想在一行中输出结果,如下所示:

1,1,1,1,1,11-1-2015,2,3,1,4,2,1-1-2000第1行


这里的任何人都知道怎么做???

只需将行合并,如下所示:

// loop over the rows, outputting them
$arr1 = array();
while ($row = mysqli_fetch_assoc($result)){
   $arr1 = array_merge($arr1,array_values($row));
}
fputcsv($output,$arr1);

只需将行合并,如下所示:

// loop over the rows, outputting them
$arr1 = array();
while ($row = mysqli_fetch_assoc($result)){
   $arr1 = array_merge($arr1,array_values($row));
}
fputcsv($output,$arr1);

你可以试试这个

$output = fopen('N:\oldpatientgraph.csv', 'w');
$csvString = '';
$index = 0;
while ($row = mysqli_fetch_assoc($result)){
  if ($key) {
    $csvString.=',';
  }
  $csvString .= implode(',',array_values($row)); #Array values to string
  $index = 1;
}

fwrite($output, $csvString); #Write string to file
fclose($output);
注意:上述代码将在一行中提供所有数据


你可以试试这个

$output = fopen('N:\oldpatientgraph.csv', 'w');
$csvString = '';
$index = 0;
while ($row = mysqli_fetch_assoc($result)){
  if ($key) {
    $csvString.=',';
  }
  $csvString .= implode(',',array_values($row)); #Array values to string
  $index = 1;
}

fwrite($output, $csvString); #Write string to file
fclose($output);
注意:上述代码将在一行中提供所有数据


然后将数组连接到字符串上?是的,这不起作用,因为fputcsv()希望第二个参数是数组而不是字符串。。谢谢你的帮助。$out=[];而($row=mysqli\u fetch\u assoc($result))$out=array\u merge($out,array\u values($row));;fputcsv($output,$out);这管用!您合并阵列的方式是正确的。但是fputcsv()不接受第二个参数$things,它是字符串。。!看看这个:$out=[];而($row=mysqli\u fetch\u assoc($result))$out=array\u merge($out,array\u values($row));;fputcsv($output,$out);这管用!抱歉,我只是认为如果fputcsv()接受字符串,lesson leaved@Neha。然后将数组连接到字符串上?是的,这将不起作用,因为fputcsv()希望第二个参数是数组而不是字符串。。谢谢你的帮助。$out=[];而($row=mysqli\u fetch\u assoc($result))$out=array\u merge($out,array\u values($row));;fputcsv($output,$out);这管用!您合并阵列的方式是正确的。但是fputcsv()不接受第二个参数$things,它是字符串。。!看看这个:$out=[];而($row=mysqli\u fetch\u assoc($result))$out=array\u merge($out,array\u values($row));;fputcsv($output,$out);这管用!抱歉,我只是认为如果fputcsv()接受一个字符串,那么lesson leaved@Neha.
$out=[];而($row=mysqli\u fetch\u assoc($result))$out=array\u merge($out,array\u values($row));;fputcsv($output,$out)它在splash58时起作用。非常感谢您的帮助:)
$out=[];而($row=mysqli\u fetch\u assoc($result))$out=array\u merge($out,array\u values($row));;fputcsv($output,$out)它在splash58时起作用。非常感谢您的帮助:)数据以单行形式出现,但查询结果的每一行都不是用逗号分隔的。此外,它不会写入csv文件。有关写入问题,请检查
'N:\oldpatientgraph.csv'
的正确文件
路径/权限。你能为你的问题提供
var\u dump($row)
数据吗@Nehat在文件中写入没有问题。。因为它与fputcsv()函数配合得很好。啊!可以(y) @NehaAnyway,谢谢您的帮助:)@sumonth数据以单行形式出现,但查询结果的每一行都没有逗号分隔。此外,它不会写入csv文件。有关写入问题,请检查
'N:\oldpatientgraph.csv'
的正确文件
路径/权限。你能为你的问题提供
var\u dump($row)
数据吗@Nehat在文件中写入没有问题。。因为它与fputcsv()函数配合得很好。啊!可以(y) @nehaany,谢谢你的帮助:)@Sumon