Intereting Posts
Невозможно создать абстрактный класс … в appDevDebugProjectContainer.php – Symfony2 Интеграция ZF / Doctrine2: где я могу поместить классы моделей / объектов и прокси? Как вставить несколько значений счета в codeigniter рассчитать рабочее время между двумя датами в PHP Автоматический предварительный php-файл с использованием htaccess относительно файла htaccess Есть ли простой PHP-код, чтобы отличить «Передача объекта в качестве ссылки» vs «Передача ссылки объекта как значения»? HTML-рендеринг с помощью TCPDF (PHP) Zend-приложение и bootstrap как не mvc Кнопка загрузки PHP не работает Создание пустого файла Как установить PHPUnit с WAMP? Может ли PHP читать текст из файла PowerPoint? Как использовать api.dpd.co.uk api интеграцию с php PHP-браузер и os-обнаружение, показывающие хром вместо оперы Можно ли это сделать в запросе MySQL, или это нужно сделать в PHP? (серверный) Можно ли сделать мои образы, вызванные из базы данных, ссылкой на другую страницу?

Как написать значения массива в файл csv в PHP?

У меня есть массив, структура которого подобна $data = array{0=>'abc',1=>xyz,2=>tqs}

Теперь мне нужно записать эти значения в файл csv. Мне нужно отобразить каждое значение в 1-м столбце и с каждой новой строкой на новой вставке вместе с предыдущим значением, уже имеющимся.

Ниже приведен код, который я использую, но каждый раз, когда я его выполняю, я получаю последнее значение в файле:

 for ($c=0; $c < $num; $c++) { echo $data[$c]; echo $query = "select prod_sku,prod_name from tbl_product where prod_sku = '".$data[$c]."'"; $result = mysql_query($query); $row = mysql_fetch_array($result); if(empty($row)){ print_r($row); echo 'test'; $fp = fopen("file.csv", "w"); print_r($data[0]); fputcsv($fp, $data[0]); fclose($fp); } 

Как я могу достичь этого с помощью PHP?

Проблема в том, что вы делаете fopen внутри цикла for, поэтому каждый раз, когда цикл работает, ваш файл переписывается. Переместите fopen и fclose за пределы цикла, и он будет работать. Как это;

 $fp = fopen("file.csv", "w"); for ($c=0; $c < $num; $c++) { $query = "select prod_sku,prod_name from tbl_product where prod_sku = '".$data[$c]."'"; $result = mysql_query($query); $row = mysql_fetch_array($result); fputcsv($fp, $data); } fclose($fp); 

Если вы используете MySQL, вы можете использовать SELECT ... INTO OUTFILE :

 SELECT prod_sku, prod_name INTO OUTFILE '/tmp/products.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n' FROM tbl_product WHERE 1 

http://dev.mysql.com/doc/refman/5.0/en/select.html