2016-12-05 1 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" 

Что я хочу извлечь возраст снова и поставить его на и каждой строки с текстом, как

"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

Я нашел решение самостоятельно и совместно с вами

Я добавил

echo "text_added;"; 

только после того, как

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

и изменил

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"; 

именно то, что я хочу.

Смежные вопросы