How to Use Flash with PHP and mySQL
         written by ptolemy

This is page two of the tutorial on learning how to use Flash with PHP and mySQL. If you stumbled upon this page without reading page one, click here to visit page one of this tutorial.

Setting up your MySQL Table
Ok so our script doesn't do much right now. All it does is pass our SWF a simple variable whose value is hard coded in the script. This is a tutorial on getting data dynamically from a database so, let's move on to first setting up a table that will contain our information.
First of all, we must think about how our database will be organized. Text files are easy because they have a name and content, but how do we go about emulating that with a database? Simple. Take a look at the table below and you'll understand what I mean.

where filename is a varchar and content is a blob. This is the nice part. See how this is like a regular file system? It makes life simple as you can now execute queries like:

SELECT content FROM file WHERE filename='myfile';

Nice eh? Ok but I'm getting ahead of myself here. Before we move on to some more PHP, insert some dummy values in your database. So for example:

Once you have successfully entered some data, it's time to move on to the last step.

Bringing Everything Together
Disregard the earlier PHP script we wrote and start off a fresh notepad session. The new script we will be writing will ultimately do three things.

  • Connect to our database
  • Create an array of data from the database
  • Print the array to the screen so that our SWF can read the data

The first thing we need to do is make our script flexible. What I mean is, we want it to be able to read any file we tell it to, without having to re-write parts of the script. The easiest way to do this is by thinking of our new script as a function of sorts. That is, we will have the ability to send the file an argument (hence my analogy to a function) that will point to the file we want it to read. Sound difficult? Well it's not, in fact, it's the easiest part of this tutorial. To send an argument to a file all one needs to do is append a ? to the end of the URL, followed by the variable name, an equal sign and then the value we want the variable to contain*.

For example:


This will only work if you have register_globals=on in your php.ini file. My server has them enabled but for some people it is a security issue. If your server does not have register_globals on, it is still possible to extract posted data using $HTTP_POST_VARS.

For simplicity's sake, let's name our new script read.php. Here's what my script looks like:

You should note that the nature of the script assumes that the variable name of the dynamic text field is named content. Now, this can be a problem if you have several text fields in a single movie clip (i.e. you would have to name each field the same name, and that wouldn't do you much good). The problem can be resolved though by adding a new variable to our script and by sending a second value via our URL. I'm not going to go through how this because:

  1. It's fairly simple to do and
  2. I have methods to my madness .

Now back to Flash. Open the FLA we created earlier (the one with the lone movie clip with a dynamic text field in it), and modify the code attached to the movie clip so that it looks like this:

Now publish the FLA and cross your fingers . If all has gone well, you should see your text field filled with the text found in the content column of your database, where the file name is equal to testfile. If nothing shows up, there are a couple things I would recommend checking before you flame me for this tutorial not working.

  • Make sure Apache (or other) is running if you're doing this locally (ok I had to say this as it has happened to me in the past.
  • Make sure the colour of the text in the text field is not the same as the background
  • Make absolute sure that you gave the text field a variable name not an instance name

If you still have problems and you don't know why, don't hesitate to reply to me directly or post a message.

I admit it takes quite an effort to do something as simple as get information from a database into a Flash movie. I hope that you can understand the power of the database though, and how it can make your projects easier and more enjoyable to maintain. Maybe sometime in the future we could convince Macromedia to include functions that would interface directly with a database. Until that happens though, we're gonna have to keep on scripting.

[email protected]



Previous Page

Discuss on kirupaforum.com




kirupa.com's fast and reliable hosting provided by Media Temple.