CSV (Comma Separated Values) file is one of the ways to store database values in tabular format. But as a PHP beginner sometimes create CSV and save it into a directory become a nightmare.
But don’t worry in this tutorial I am going to show you how to do that.
What we are going to do:
I will use a blog example in which I will fetch all blog post with their content and display them in a html table. Then I will create a button on the top left of the table with the title of Create and Save CSV. When user will click on button then csv will be created and saved in csv directory. In this process I will use fopen() function to create a CSV file and fputcsv() function to put data into created file.
Create CSV file using PHP and save into directory
Create database:
1 2 3 |
Create database demo; |
Create Database Table:
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE TABLE `blog` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `title` VARCHAR(255) NULL DEFAULT NULL, `blog_content` TEXT NULL, `author` VARCHAR(255) NULL DEFAULT NULL, `created` DATETIME NULL DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB ; |
Insert Dummy Data into Blog Table:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
INSERT INTO `blog` (`id`, `title`, `blog_content`, `author`, `created`) VALUES (1, 'Quibusdam omnis ut ex consequuntur tenetur id.', 'Pariatur asperiores hic possimus sed. Ex minima est voluptate nihil sint perspiciatis. Quisquam nisi et voluptatem natus. Atque autem nam doloribus velit. Tenetur error dolor aperiam perferendis voluptatem sit. Tempore praesentium provident est sed nulla vel possimus. Sed eveniet quam ut consectetur. Repudiandae quia perspiciatis maxime animi sint tempore voluptatibus. Aut quis molestias ab placeat rerum nihil. Ab cum neque id non voluptate. Excepturi placeat est saepe illo et temporibus. Omnis cum vel quae ab aut quibusdam porro. Quisquam explicabo molestiae animi alias ex vel. Fugiat atque voluptatem amet assumenda possimus sit aut. Suscipit reprehenderit enim odit consequatur amet ipsam. Tenetur accusamus voluptatem tenetur nobis qui optio minus. Aliquam molestiae ullam est debitis omnis enim voluptatem autem. Sapiente et eaque quo assumenda officia. Rerum eligendi et quaerat doloremque commodi. Incidunt saepe earum fugit.', 'Keyon', '2017-12-03 09:13:55'), (2, 'Accusantium facilis consectetur ut.', 'Ullam rerum qui placeat omnis consectetur. Maxime labore voluptas in delectus fugit incidunt. Et laudantium quas consectetur nihil aperiam nobis. Ullam facilis veritatis neque dolorum architecto. Dolorem quia vel expedita adipisci rerum. Molestiae odit aut quia iusto. Velit nihil qui voluptates. Reprehenderit eum dolorem maxime et laborum voluptas. Repudiandae cumque et facere. Adipisci accusantium nihil perspiciatis quasi aut dignissimos quo. Dicta voluptatem vitae nihil voluptas voluptatem voluptate quos magnam. Pariatur qui nihil numquam. Sapiente voluptatibus maxime sequi soluta. Laborum consequuntur et quis doloribus et. Aliquid quis et qui qui saepe. Porro quo consequatur vero. Quae omnis doloribus enim aut aut ut cum.', 'Ernest', '2017-12-03 09:13:55'), (3, 'Neque delectus nam non quo tenetur quia sit.', 'Sunt molestias itaque porro repellat tenetur. Sint ad distinctio ipsam quia recusandae rerum earum. Deleniti sequi aliquam optio eveniet ipsum. Nihil provident consectetur iure optio id omnis exercitationem. Odit autem laboriosam qui repudiandae illum aut. Nam dolorum molestiae ex. Dolorem non sit ex fugiat. Molestiae esse nisi voluptatem eveniet debitis sed vel ducimus. Ratione asperiores quisquam reiciendis quisquam et. Autem cupiditate accusantium minus. Non ab dolorem numquam laudantium. Excepturi voluptatem quam occaecati quasi voluptatum. Id explicabo eligendi nemo nobis est ex amet. Qui ad corporis qui provident tempore unde. Asperiores doloribus voluptatem neque ipsam a. Tenetur dolore adipisci ea earum quo explicabo ullam at. Nihil sit fugit ullam iusto impedit. Cupiditate et est quia. Magnam illo iusto incidunt amet quidem quos. Porro et et ratione numquam. Aspernatur a atque tempore saepe qui. Inventore dolorem iusto consequatur tenetur ea est.', 'Freddy', '2017-12-03 09:13:55'), (4, 'Perferendis qui ipsa labore et eaque praesentium.', 'Numquam repellat ut et et dicta aut. Ipsum qui qui ipsum autem qui sapiente est commodi. Aut corrupti in voluptatibus ipsum et magnam. Dicta est optio illum ea facilis et est. Qui occaecati minima ratione. Qui sed qui ea officia. Commodi labore officia voluptates earum natus. Praesentium et facilis sed nam laboriosam. Commodi blanditiis nobis voluptatum veritatis. Iste et amet libero voluptas quia facere sequi porro. Veritatis similique accusamus ipsa numquam dolores. Ut dolorem est dolorem est officiis nemo. Aut quisquam animi doloremque maiores. Sed dolorem enim ut quaerat blanditiis. Hic odit perferendis quis repellendus. Vel quia distinctio nostrum eaque. Pariatur voluptas sint exercitationem qui.', 'Ron', '2017-12-03 09:13:55'), (5, 'Inventore officia vitae reprehenderit commodi voluptates cumque.', 'Dolor aut aut consectetur possimus. Aut eius distinctio cum impedit saepe. Voluptas nam eligendi quo eligendi natus. Optio mollitia nam vitae voluptatem fugit. Rem voluptatem exercitationem est eum labore. Similique perferendis odit perferendis corporis officia. Accusamus est quibusdam id ad doloremque porro. Itaque consequatur consectetur et ullam. Nesciunt consequuntur nesciunt quia at non. Iure nostrum molestiae veniam praesentium ipsa. Accusamus sunt laborum ab. Recusandae accusantium quaerat quos sed eveniet. Qui aspernatur animi maxime laboriosam consectetur delectus. Cum dolores eius repudiandae qui sint enim. Sunt in quod voluptas ab. Quia nulla consequatur ipsam doloremque occaecati nesciunt. Incidunt porro nostrum aspernatur alias. Illo blanditiis veritatis ab porro id consequuntur asperiores beatae.', 'Dangelo', '2017-12-03 09:13:56'), (6, 'Ab blanditiis et velit magni enim voluptas.', 'Occaecati deserunt officiis veritatis eaque. Molestiae quibusdam sit quod ullam. Maxime dignissimos totam repellendus. Maxime similique adipisci iste rerum aut deserunt tenetur. Fuga et accusamus voluptatibus sit id ab autem error. Corporis vel quidem amet ab. Optio et animi qui veritatis commodi eveniet quia. Omnis quia et laborum. Autem praesentium totam aut perferendis totam quia. Et vero ut explicabo quia cumque. Et at voluptatum sit. Illum aliquam qui possimus numquam animi ipsa eos. Distinctio non placeat ipsa ut. Et quo adipisci quia. Veniam ullam voluptates dolores ut quasi corrupti vel. Aut consectetur enim maiores quia. Ex pariatur exercitationem impedit voluptas doloribus. Possimus soluta ut distinctio quis ad et voluptatum. Et doloribus ad qui sint deleniti sequi et.', 'Damien', '2017-12-03 09:13:56'), (7, 'Inventore et unde deleniti nemo quidem veritatis sit.', 'Ut rerum minus enim iusto. Sint rem mollitia repellat nisi sint numquam. Est quibusdam possimus nostrum. Commodi dignissimos fuga nesciunt non. Quaerat iusto accusamus non. Tempore et dignissimos rerum numquam quibusdam porro omnis. Et eum qui fugiat consequuntur nisi. Cumque tempore cum aut aut quia cupiditate nobis. Provident id aperiam libero ullam nostrum esse. Ut ut minima voluptatem accusantium sapiente. Distinctio possimus suscipit reprehenderit et aliquam consequatur. Recusandae ea laudantium et. Laboriosam reiciendis commodi impedit quia. Doloremque occaecati qui unde.', 'Uriah', '2017-12-03 09:13:56'), (8, 'Veritatis voluptates rerum consequuntur maiores dolores repellendus aut.', 'Fugiat id ut non ipsa facilis dolore beatae. Enim atque fuga culpa iste et molestiae assumenda. Eaque ullam quia voluptatem nihil eaque. Qui perspiciatis enim alias at. Eum doloribus est et amet qui laboriosam. Rerum dolorum eveniet aut mollitia quaerat ut. Asperiores autem dolores sapiente sapiente natus voluptate. Rerum voluptatem rerum et ipsam. Sunt laudantium dolorem nobis libero voluptatibus. Commodi in mollitia voluptatum odio perspiciatis qui culpa esse. Maxime ea unde voluptas ut rerum perferendis. Illo rerum iste velit qui culpa. Corrupti repudiandae ipsum voluptas.', 'Isidro', '2017-12-03 09:13:56'), (9, 'Minus iure quia et rem eos.', 'Dolorem officiis veritatis possimus ad sint. Quasi impedit ipsa quod dolores quia placeat nihil ut. Consequatur est soluta eveniet tenetur ipsa. Quia nostrum possimus ullam. Tempora totam voluptatem quaerat aspernatur perspiciatis. Voluptatibus aut et incidunt accusamus. A officiis ea ex. Inventore possimus quo quis iste consectetur. Eveniet quae ex sit placeat consequuntur. Consequatur reprehenderit eius nihil. Qui commodi sit omnis enim nihil tenetur et doloribus. Voluptatem porro tenetur facilis ratione nostrum explicabo occaecati. Placeat aspernatur voluptas ab assumenda at molestiae unde. Ullam quia eum enim a dolores similique.', 'Percy', '2017-12-03 09:13:56'), (10, 'Modi rerum quaerat repellendus doloribus fugit beatae.', 'Enim placeat quam doloribus consequatur unde et quidem. Nobis magni quia et velit unde dicta. Aspernatur tempora et dolor ipsa placeat. Commodi reprehenderit qui ullam perspiciatis qui laborum accusamus rerum. Non qui corporis neque vel. Perferendis qui atque aut eos. Reprehenderit similique voluptas ipsam itaque earum quod. Numquam modi nam est quidem quam consequatur. Aut maxime molestias aspernatur labore dolores iusto harum. Eveniet nobis ducimus quod et tempore. Velit qui est reiciendis voluptas tempora adipisci magni a. Et sed quos porro aliquam esse ab. Unde fuga modi neque ut vitae eligendi velit.', 'Elroy', '2017-12-03 09:13:56'), (11, 'Fugit est fugiat voluptas doloribus voluptatem.', 'Quia et et aspernatur et quia doloribus. In dolor fugiat voluptatem pariatur ducimus. Repellendus nobis possimus beatae quasi enim aperiam tempore. Nesciunt architecto sequi porro et. Qui et voluptatem modi reprehenderit libero saepe. Quia aut aut amet libero recusandae maxime. Aut dolorum nihil iure tempore repellendus autem rem. Voluptate cumque sed natus nam alias voluptatum. Veritatis cumque incidunt quo ullam sint maxime omnis. Corrupti similique in distinctio est et ipsum. Eum veniam accusamus corporis veniam minus.', 'Coy', '2017-12-03 09:13:56'), (12, 'Perferendis omnis quia reiciendis eaque rerum ab odit.', 'Minus aut minima dolor aspernatur magnam eveniet excepturi. Nulla placeat voluptas dolorum distinctio. Quo atque assumenda neque quo. Explicabo quam quo commodi reprehenderit et consectetur. Eos cupiditate omnis commodi voluptas. Hic iusto eos eveniet pariatur molestiae dignissimos dolorem sunt. Ut ipsa sit aut consequuntur aut. Ut ut sit voluptates tempore et. Et est ut deserunt facere maiores. Libero possimus facere voluptates qui. Natus voluptates numquam repellendus iure veritatis quasi ex. Reprehenderit consequatur quis cupiditate deleniti sunt corrupti est. Fugiat ad placeat fugiat cumque sint corrupti ipsum. Doloremque autem laborum corporis voluptas possimus molestias illum. Qui ut quo iure beatae deserunt. Fuga magnam debitis dolore aut numquam. Dolorum dolorem in temporibus qui voluptatum ea totam. Consequatur enim repellendus voluptate sed perspiciatis ullam. Non et facere esse. Nihil deleniti ex eos aut alias nobis.', 'Marco', '2017-12-03 09:13:56'), (13, 'Facere rerum aut deserunt cumque magni dolorum.', 'Aliquid non modi occaecati at et doloremque. Ut architecto minus sit architecto velit aut. Sint dolorem ut cum dolore earum. Ad labore asperiores accusamus ea error at rerum. Soluta et inventore rerum non deserunt praesentium ex. Dolores totam ut ut corrupti sunt velit. Repellendus atque quaerat est rerum nisi. Quia ut earum magni pariatur porro voluptatem sunt cumque. Unde sit modi natus consectetur. Iure sit ea necessitatibus ut et inventore pariatur. Earum doloribus enim error nulla non dolor tempora. A alias eligendi ea totam aut. Perferendis commodi quia voluptas. Beatae minima quas laborum aut a.', 'Doug', '2017-12-03 09:13:56'), (14, 'Quam incidunt rem perspiciatis sint atque in est.', 'Accusantium mollitia nesciunt et fuga adipisci dolorum. Consequatur omnis ut qui magni sunt. Iusto eum nulla dolorum a consequatur et. Quae ipsam in qui eaque qui quia omnis. Molestias sed excepturi exercitationem quisquam et aut molestiae. Cumque excepturi tenetur quia voluptatem ea quia qui. Laborum omnis exercitationem dolor dolores aut. Officiis vitae cupiditate dolorem quisquam. Molestiae reprehenderit earum sit excepturi. Et occaecati mollitia optio et dolorem. Enim vitae aut et voluptas. Delectus consequuntur non occaecati officiis eaque quis nihil ea. Aspernatur aliquid nihil et autem facilis. Laboriosam nostrum pariatur et eos.', 'Albert', '2017-12-03 09:13:56'), (15, 'Quis minima eum in vitae tempora et.', 'Ullam nobis quo amet. Nostrum animi sint eaque suscipit molestias. Corporis facilis et distinctio impedit ea ut sed earum. Commodi at voluptates dolores consequuntur. Voluptas voluptas iusto natus dicta dolore neque qui explicabo. Error inventore et cupiditate illum ut rem doloremque id. Inventore atque placeat sint minima odio quas ex quia. Enim minus maxime libero fugiat molestiae sequi magni. Minima nostrum modi rerum corrupti molestiae eaque. Magnam in est maxime libero vel inventore reprehenderit. Sit sunt rerum quam facere. Nihil non tenetur fugiat quia. Omnis et repellat aut sed. Eaque occaecati sed sed vel fuga officia est. Ut et placeat necessitatibus rem iste temporibus. Temporibus in dignissimos sapiente voluptatem occaecati mollitia iusto.', 'Louisa', '2017-12-03 09:13:56'), (16, 'Dolores voluptatibus et quam sunt occaecati perspiciatis quae.', 'Et quia rerum ex labore. Eum sed vitae accusantium velit amet. Rem et porro laboriosam aliquid ut. Occaecati numquam rem iure modi ratione. Unde molestias debitis nihil quis. Et explicabo cumque aperiam rem. Unde dolor quasi similique. Unde labore ad fugiat et consequatur dignissimos veniam. Consequatur ut corporis nihil sint molestiae aut repellendus. Rerum nemo sequi laudantium veritatis mollitia eos. Tempore ut animi facilis molestiae laborum. Distinctio quia vitae sit et dolores. Sapiente similique voluptas aut quaerat dolorem. Nam porro fugiat a hic adipisci. Excepturi sint velit dicta omnis commodi voluptas iusto hic. Quia alias minima culpa quia quis repudiandae. Nisi ullam magni aperiam soluta quisquam voluptates eligendi est. Quo molestiae aut expedita. Rem numquam deserunt soluta repellat dolorem unde ea ipsa. Vero sed sunt soluta. Et illo fugit earum beatae cum in.', 'Garrison', '2017-12-03 09:13:56'), (17, 'Qui illum quis saepe eos.', 'Eum non reiciendis facilis sit et. Maiores ea excepturi ipsa beatae recusandae saepe. Alias ratione beatae tempore sit. Fugiat occaecati libero blanditiis sed ut sunt. Illum dignissimos aperiam porro cum ducimus aut. Voluptas nisi eveniet et dolores. Nihil amet quidem quo qui enim. Vel nesciunt illum et eum ut assumenda. Quo tempore excepturi corrupti ea et pariatur debitis. Voluptatibus rerum et ut dolores. Ut est non est soluta velit ipsum.', 'Dudley', '2017-12-03 09:13:56'), (18, 'Est culpa mollitia id fugiat quae vero.', 'Minima alias praesentium est. Quod sit in harum et praesentium in illo sit. Porro voluptatibus doloremque qui veritatis harum et. Dolores et voluptates ut perferendis. Eveniet aut veniam qui qui. Aut quod sunt totam quia quam. Expedita molestias nostrum impedit et. Sed quia voluptas doloremque eos. Quo aspernatur est consequuntur molestiae praesentium similique quam non. Amet velit repellendus expedita magni ab delectus quibusdam. Ut est molestiae necessitatibus rerum et aut magni. Nostrum et distinctio odio. Incidunt consequatur corporis voluptate assumenda porro sit. Nihil quo quod omnis quis ut molestiae. Voluptatem quidem exercitationem ut doloremque exercitationem. Pariatur cumque doloribus aut perspiciatis velit est. Modi non repellendus aliquid et.', 'Dewitt', '2017-12-03 09:13:56'), (19, 'Est nihil quidem et omnis quod.', 'Accusantium minus et reprehenderit illum ipsum. Sed consequatur ut maxime voluptatem tempora. Libero voluptate aut quia nemo. Ut fugiat repellat qui voluptate ipsam quos atque. Ut minima et incidunt ullam rerum magni non ullam. Velit aut unde illum omnis. Asperiores qui magnam alias atque illo. Aliquam atque non iste impedit. Dolor corrupti culpa exercitationem. Dignissimos ipsa non repellat quidem fugit harum eligendi. Cumque molestiae eligendi nulla qui omnis dolorem aut dicta. Est reprehenderit ab fugit culpa.', 'Isaias', '2017-12-03 09:13:56'), (20, 'Voluptatem earum molestiae et in.', 'Sed asperiores a accusantium voluptatem dolor est aspernatur. Laborum quo quod nisi sed. Tempora qui dignissimos eum iure cupiditate ea veniam. Sit qui enim iure odit rem numquam ipsam. Magnam dolorum illo impedit deleniti cupiditate molestiae. Iste dolores rerum aut atque reprehenderit. Sed expedita laudantium quis illo aut. Quaerat rerum suscipit sint delectus et. Magnam in ea facilis earum ipsam. Sunt fugiat voluptates ipsum. Quibusdam aspernatur exercitationem qui quaerat nobis. Repudiandae ipsam enim aliquam et earum. Pariatur nulla veniam nihil quaerat aut porro.', 'Jaron', '2017-12-03 09:13:56'), (21, 'Iste nisi eum itaque velit rerum fugit voluptatem.', 'Nihil porro nam consequuntur omnis provident autem. Vero dignissimos quisquam aspernatur aut. Est dolor ut corporis quidem repellat itaque corporis ut. Enim sit nesciunt consequuntur quidem pariatur est repellendus nihil. Sequi est placeat magni qui molestiae eveniet. Quidem vitae minus accusamus. Nihil maxime similique est eos nemo eligendi ullam. Et similique placeat voluptas blanditiis magni quia sunt. Pariatur iure consequatur veniam eos omnis in. Sit incidunt inventore sed aut aut minima et. Repudiandae debitis fugit minima. Quam nesciunt velit ipsa quam. Sit quis laudantium porro aliquid quisquam. Libero totam autem modi. Qui quia itaque voluptates pariatur. Voluptatem deleniti corporis unde aperiam voluptatem.', 'Clair', '2017-12-03 09:13:56'); |
Create Database Connection: (config.php)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $host = "localhost"; $user = "root"; $pass = ""; $database = "demo"; $conn = mysqli_connect($host, $user, $pass,$database); if(!$conn) { die(mysqli_error()); } ?> |
Fetch Records And Display in HTML Table:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<table width="100%" style=""> <tr> <th>Title</th> <th>Content</th> <th>Author</th> <th>Created</th> </tr> <?php $sql = "select * from blog"; $rs = mysqli_query($conn,$sql); while($row = mysqli_fetch_assoc($rs)) { $blogContent = substr($row['blog_content'],0,190); echo '<tr>'; echo '<td>'.$row['title'].'</td>'; echo '<td>'.$blogContent.'</td>'; echo '<td>'.$row['author'].'</td>'; echo '<td>'.$row['created'].'</td>'; echo '</tr>'; } ?> </table> |
Create and Save button:
1 2 3 4 5 |
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> <button type="submit" name="submit">Create and Save Csv</button> </form> |
Create CSV and Saved in Directory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php if(isset($_POST['submit'])) { $fileAndFilePath = 'csv/blog-content-'.strtotime("now").".csv"; $fopen = fopen($fileAndFilePath,'w'); $createColumn = array("id","Post Title","Content","Author","Created"); fputcsv($fopen,$createColumn); $sql = "select * from blog"; $rs = mysqli_query($conn,$sql); while($row = mysqli_fetch_assoc($rs)) { fputcsv($fopen,$row); } fclose($fopen); $message = 1; } ?> |
Success Message:
1 2 3 4 5 6 7 8 9 10 |
<?php if(isset($message) && $message == 1) { echo '<div class="success-msg">'; echo "Csv file has been created and saved in csv directory"; echo '</div>'; } ?> |
Also Read:
- How to Upload CSV and Save in Mysql database using PHP
- Ajax dropdown list from Database using PHP and jQuery
- How to sort html table columns using PHP jQuery and Ajax