2016-12-05 85 views
0

这是我的代码,工作得很好。当我从浏览器调用这个文件时,它以CSV格式下载我的文件。如何在mysql的每行下载文件的末尾添加文本?

<?php 
/* vars for export */ 
// database record to be exported 
$db_record = 'people'; 
// optional where query 
$where = 'WHERE 1 ORDER BY 1'; 
// filename for export 
$csv_filename = 'exported.csv'; 
// database variables 
$hostname = "localhost"; 
$user = "root"; 
$password = ""; 
$database = "db1"; 

// Database connecten voor alle services 
mysql_connect($hostname, $user, $password) 
or die('Could not connect: ' . mysql_error()); 

mysql_select_db($database) 
or die ('Could not select database ' . mysql_error()); 
// create empty variable to be filled with export data 
$csv_export = ''; 
// query to get data from database 
$query = mysql_query("SELECT * FROM ".$db_record." ".$where); 
$field = mysql_num_fields($query); 
// create line with field names 
for($i = 0; $i < $field; $i++) { 
    $csv_export.= mysql_field_name($query,$i).';'; 
} 
// newline (seems to work both on Linux & Windows servers) 
$csv_export.= ' 
'; 
// loop through database query and fill export variable 
while($row = mysql_fetch_array($query)) { 
    // create line with field values 
    for($i = 0; $i < $field; $i++) { 
    $csv_export.= '"'.$row[mysql_field_name($query,$i)].'";'; 
    } 
    $csv_export.= ' 
'; 
} 
// Export the data and prompt a csv file for download 
header("Content-type: text/x-csv"); 
header("Content-Disposition: attachment; filename=".$csv_filename.""); 
echo($csv_export); 
?> 

假设生成的文件是这样的:

"name", "age", "country" 
"Gulizer", "21", "Kurdistan" 
"Pierre", "20", "France" 

我要的是retreive年龄再次把它放在每行有一些文字像

"name", "age", "country", "text_added" 
"Gulizer", "21", "Kurdistan", "The age of Gulizer is 21" 

可能吗?

+0

SELECT INTO OUTFILE有什么问题? – e4c5

+0

什么都没有。它很好用 –

+0

每次你使用[mysql_'](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) 在新代码中的数据库扩展 ** [一只小猫被勒死在世界的某个地方](http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)**它被弃用并且已经有多年并在PHP7中永远消失。 如果您只是学习PHP,请花些精力学习'PDO'或'mysqli'数据库扩展。 [从这里开始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

回答

0

我找到了解决办法通过自己和大家分享一下

我刚过

for($i = 0; $i < $field; $i++) {$csv_export.= mysql_field_name($query,$i).';';} 
$csv_export.= '\n'; 

添加

echo "text_added;"; 

,改变

for($i = 0; $i < $field; $i++) { 
    $csv_export.= '"'.$row[mysql_field_name($query,$i)].'";'; 
    } 
    $csv_export.= ' 
'; 
} 

 for($i = 0; $i < $field; $i++) { $csv_export.= '"'.$row[mysql_field_name($query,$i)].'";'; } 
$csv_export.= ' 
'.$row['age'].'years old";'; 
} 

,最后我得到了这样的结果:

text_added;name;age;country 
"21 years old"; "Gulizer"; "21"; "Kurdistan" 
"20 years old"; "Pierre"; "20"; "France"; 

正是我想要的。

相关问题