2012-06-22 3 views
2

Я использую этот код для извлечения запроса в файл csv, но он дублирует напечатанные поля.php duplicates output

Это что-то не в порядке с этим кодом ниже?

if (!$result1) { echo mysql_error(); } 
while ($row = mysql_fetch_array($result1)) { 
    fputcsv($fh, $result1, ','); 
} 
fclose($fh); 

Все это произошло после того, как я вставил , в fputcsv

+0

$ result1 - это дескриптор результата из mysql, это ** NOT ** данные строки, которые вы извлекаете. –

+0

Каков запрос? – ametren

ответ

2

Изменение:

fputcsv($fh, $result1, ','); 

To:

fputcsv($fh, $row, ','); 

Update: Хотя вы отказываетесь предоставить более подробную информацию, Я угадываю проблему после маки Это изменение состоит в том, что mysql_fetch_array возвращает объединенный числовой индекс/ассоциативный массив по умолчанию. Вам нужно пройти MYSQL_NUM, чтобы получить результаты, которые вам нужны. Таким образом, полный код будет выглядеть так:

if (!$result1) 
    echo mysql_error(); 

while ($row = mysql_fetch_array($result1, MYSQL_NUM)) /* <-- Added MYSQL_NUM */ 
    fputcsv($fh, $row, ','); /* <-- $row, not $result1 */ 

fclose($fh); 
+0

ну, это дает мне неправильный результат ... –

+1

Каков ожидаемый результат и какой результат вы получаете? –

2
fputcsv($fh, $result1, ','); 

Вы не хотите этого?

fputcsv($fh, $row, ',');