2013-04-12 1 views
-2

я стараюсь, чтобы узнать, как экспортировать данные в формате CSV, используя этот скрипт, да я могу экспортировать все данные, но в CSV я нашел одну ошибку (при запуске в локальном хосте):Неопределенная переменная ошибка после экспорта данных в CSV

<b>Notice</b>: Undefined variable: csv_output in <b>C:\xampp\htdocs\import_export\index.php</b> on line <b>10</b><br /> 

не уверен, почему, но я могу запустить этот код на реальном сервере без каких-либо проблем.

Полный код

error_reporting(E_ALL); 

mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("csv") or die(mysql_error()); 

$file = "product_export"; // csv name. 

//CSV Header 
$csv_output .= "ID " . ", "; 
$csv_output .= "Content " . ", "; 

$csv_output .= "\n"; 

//CSV Content rows 
$query = mysql_query("SELECT * FROM `users`"); 
while ($row = mysql_fetch_array($query)) { 
    $csv_output .= $row["id"] . ", "; 
    $csv_output .= $row["content"] . ", "; 

    $csv_output .= "\n"; 
} 

$filename = $file . "_" . date("d-m-Y_H-i"); 

header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=" . $filename . ".csv"); 

print $csv_output; 

exit; 

р/с: им с помощью mysql_ * только для тестирования.

+0

Вы добавляете несуществующую переменную в строку 10 '$ csv_output. =" ID ". ","; "поэтому PHP любезно сообщает вам, что он не существует –

ответ

2

PHP просто дает вам знать, что вы используете переменную, которая еще не определена. Это уведомление, а не предупреждение или ошибка.

Эта линия побуждая уведомление:

$csv_output .= "ID " . ", "; 

Это первое использование этого переменный, вам не нужна конкатенация в данный момент. Легко исправить было бы изменить его:

$csv_output = "ID " . ", "; 

Если вы не хотите PHP плеваться уведомлений, вы могли бы изменить первую строку сценария для:

error_reporting(E_ALL^E_NOTICE); 
+0

после того, как я заменил. = with = теперь нет вывода в моем файле csv .. вы можете объяснить, почему это происходит? – rusly

+0

Убедитесь, что вы заменили это только на FIRST. Остальная часть вашего кода должна продолжать использовать $ csv_output. = "..." – jszobody

+0

oh спасибо, теперь это работает. – rusly

4

В первой строке:

//CSV Header 
$csv_output .= "ID " . ", "; 

Вы пытаетесь Конкатенируйте идентификатор к переменной, но переменная никогда не определена.

Первый раз, когда вы используете переменную, не используйте точку перед «знак равенства» так попробовать это:

In the first line: 

//CSV Header 
$csv_output = "ID " . ", "; 
0

добавляющим переменные с .= обязательны для заполнения Ваше объявить переменную в ее надлежащее сначала форму, например: $variable = $value, тогда вы можете добавить ее, иначе она даст вам всегда необъявленную ошибку переменной.