Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Exporting Data to Files with PHP

From: Exporting Data to Files with PHP

Video: Introducing the Base class for file downloads

We saw earlier in this chapter, that it takes only a few lines of code But even if you Copy and Paste all of this code You might also want the idea of each The code on line 57 passes the database result to the first protected method.

Introducing the Base class for file downloads

We saw earlier in this chapter, that it takes only a few lines of code to export a data base result to a text file, or to a CSV file. Because so little code is involved, it might seem overkill to use custom classes instead. But even if you Copy and Paste all of this code into another file, you'll probably want to make some changes to it. For example, this code on line 12. It capitalizes the first letter of each column name in the database result. What if you want it to be all uppercase, or what if you don't want to include it at all? You might also want the idea of each database row to create links in your webpage.

But you don't want that information to be included in the download file. That's where custom classes come in handy. The class definitions are in the SRC folder, that I've created at the top level of my testing site. You can find a copy of this folder in the exercise files for this video. Let's jut open it. It contains another folder called foundationphp. That's my domain name. So I've used that as the name space for the classes I have defined, and inside this folder is the auto loader that was described in chapter one.

PSR 4 auto loader.php. There's also a folder called Exporter. Let's just expand that. This contains six files with class definitions, that'll be used in different parts of this course. The one we're interested in at the moment is this first one, base.php. This is used as the basis for three other classes - CSV, text, and XML. Let's just open the base class to see how it looks.

All the class definitions are fully commented, so you can read the comments to see how they work. And as it explains on line 7 here, this accepts both MySQL Improved and PDO database results. But it does require PHP version 5.3 or later. Let's just scroll down to have a look at the constructor. Here it is on line 52. The constructor takes three arguments. The first one is a database result, and that is a required argument.

The two other arguments are optional. The second argument is a file name, and the third argument is an array of options. The code on line 57 passes the database result to the first protected method. Set result type. This checks whether the database result is a MySQLI result, or a PDO statement. A constructor checks two options, suppress and local. The suppress option, allows you to remove columns that you don't want included in the download file, and the local option makes the data export more flexible by creating a file on the local server, rather than downloading it.

By default, local is set to false, so files are downloaded unless you set local to true. If we move down a little bit further, we can see two more protective methods; buildSuppressedArray, and removeSuppressedColumns. These methods remove columns from the export file, if the suppress option is used. And further down, is the getRow method. This gets a database row, depending on whether you're connecting to the database using MySQLI or PDO.

And then, the last protected method is output headers. This generates the headers for the download file. And the code on line 141 adjusts the content type, according to which type of file you're downloading. And on line 142, it also adds the file name. So this base class is completely neutral. It will work with either MySQLI or PDO, and it can be used for any file type or file name. You can see from the line number at the bottom 147, the base class is considerable longer than the procedural code that we've been using so far, and it doesn't even generate the download file.

But it does have several advantages. It's not tied to a particular project, so it's more flexible. What's more, you never need to touch this code. The auto loader will load it automatically whenever it's needed, and the code you end up writing in your webpage will be a lot shorter and easier to understand.

Show transcript

This video is part of

Image for Exporting Data to Files with PHP
Exporting Data to Files with PHP

44 video lessons · 3160 viewers

David Powers
Author

 
Expand all | Collapse all
  1. 5m 57s
    1. Welcome
      59s
    2. What you should know before watching this course
      2m 42s
    3. Using the exercise files
      2m 16s
  2. 28m 3s
    1. Loading the test data into a database
      4m 8s
    2. Querying the database with MySQL Improved
      6m 4s
    3. Connecting to different databases with PHP Data Objects (PDO)
      2m 26s
    4. Querying the database with PDO
      7m 47s
    5. Displaying the data in a webpage
      5m 1s
    6. Autoloading classes
      2m 37s
  3. 38m 47s
    1. Outputting the database result to a text file
      6m 32s
    2. Outputting the result as a CSV file
      6m 53s
    3. Introducing the Base class for file downloads
      4m 37s
    4. Using the Text class for greater control over output
      7m 20s
    5. Controlling CSV options with the Csv class
      6m 49s
    6. Saving the data to a local file
      6m 36s
  4. 51m 42s
    1. Introducing PHPExcel
      3m 31s
    2. Setting properties and defaults in PHPExcel
      6m 58s
    3. Setting the spreadsheet's print options
      5m 59s
    4. Populating an Excel spreadsheet with data
      7m 46s
    5. Formatting columns in PHPExcel
      5m 47s
    6. Downloading the data as a .xlsx file
      5m 18s
    7. Creating a spreadsheet in the OpenDocument format
      3m 4s
    8. Creating columns and headers in Fusonic SpreadsheetExport
      6m 27s
    9. Adding the data and downloading as a .ods file
      6m 52s
  5. 22m 10s
    1. Installing PHPRtfLite
      3m 27s
    2. Defining the page margins and the footer
      6m 55s
    3. Setting heading and paragraph styles
      5m 18s
    4. Adding the data and outputting a .rtf file
      6m 30s
  6. 16m 35s
    1. Understanding the basic process
      3m 52s
    2. Merging XML documents with XSLT
      4m 13s
    3. Preparing a directory to generate the output
      1m 48s
    4. Generating XML from a database result
      6m 42s
  7. 27m 17s
    1. Creating a .odt file to use as a template
      4m 29s
    2. Inspecting the structure of an OpenDocument text file
      2m 43s
    3. Extracting the main content file from a .odt document
      5m 2s
    4. Converting the main content file to XSLT
      8m 3s
    5. Outputting the database result as a .odt file
      7m 0s
  8. 29m 0s
    1. Creating a .docx file to use as a template
      3m 37s
    2. Extracting the main content file from a Word document
      5m 28s
    3. Formatting the main content file
      3m 38s
    4. Converting the main content file to XSLT
      6m 18s
    5. Outputting the database result as a .docx file
      6m 4s
    6. Offering a choice of download formats
      3m 55s
  9. 3m 25s
    1. Goodbye
      3m 25s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ .

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Exporting Data to Files with PHP.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member ?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferences from the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Learn more, save more. Upgrade today!

Get our Annual Premium Membership at our best savings yet.

Upgrade to our Annual Premium Membership today and get even more value from your lynda.com subscription:

“In a way, I feel like you are rooting for me. Like you are really invested in my experience, and want me to get as much out of these courses as possible this is the best place to start on your journey to learning new material.”— Nadine H.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.