Using JQuery AJAX and php to fetch data from a mysql database
Created: 8 December 2010 : by Trystan Lea
This is a brief example for fetching data from a mysql database using JQuery AJAX and php. JQuery AJAX allows us to update a page's content without reloading the page:
How it works
- First you access a content file on the server here I have called the file client.php.
- This file is downloaded to your computer and the html is displayed by your browser.
- Client.php contains javascript which is also downloaded to your computer.
- The jquery javascript then executes and creates its own request to a script on the server that has access to the mysql database. It does this using AJAX. This script in this example is php and is called api.php
- api.php executes and gets the data from the mysql database and returns it via a json string to the listening client.php script.
- The client.php script recieves this data and finally updates the html content on the page dynamically!
You will need
- A LAMP (Linux-Apache-MYSQL-PHP) server or XAMP server to work with. There's loads of tutorials out there on installing LAMP on Ubuntu.
- The jquery library inserted in the same directory as the scripts below
- Download JQuery here: quick link : jquery-1.4.4.js
1) Create a database to store variable data
- Create a mysql database called ajax01
- Create a table called variables with 2 fields: id and name
- Insert an example variable:

2) Create a php script to receive http requests and fetch data from the database
- Create a php script called api.php on your server
- Copy and paste the example below and save it:
<?php
//--------------------------------------------------------------------------
// Example php script for fetching data from mysql database
//--------------------------------------------------------------------------
$host = "localhost";
$user = "root";
$pass = "root";
$databaseName = "ajax01";
$tableName = "variables";
//--------------------------------------------------------------------------
// 1) Connect to mysql database
//--------------------------------------------------------------------------
include 'DB.php';
$con = mysql_connect($host,$user,$pass);
$dbs = mysql_select_db($databaseName, $con);
//--------------------------------------------------------------------------
// 2) Query database for data
//--------------------------------------------------------------------------
$result = mysql_query("SELECT * FROM $tableName"); //query
$array = mysql_fetch_row($result); //fetch result
//--------------------------------------------------------------------------
// 3) echo result as json
//--------------------------------------------------------------------------
echo json_encode($array);
?>
3) Create a client script to fetch data from the API script using JQuery AJAX
- Create a html script called client.php in the same directory with the following content in it:
<!---------------------------------------------------------------------------
Example client script for JQUERY:AJAX -> PHP:MYSQL example
---------------------------------------------------------------------------->
<html>
<head>
<script language="javascript" type="text/javascript" src="jquery.js"></script>
</head>
<body>
<!-------------------------------------------------------------------------
1) Create some html content that can be accessed by jquery
-------------------------------------------------------------------------->
<h2> Client example </h2>
<h3>Output: </h3>
<div id="output">this element will be accessed by jquery and this text replaced</div>
<script id="source" language="javascript" type="text/javascript">
$(function ()
{
//-----------------------------------------------------------------------
// 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
//-----------------------------------------------------------------------
$.ajax({
url: 'api.php', //the script to call to get data
data: "", //you can insert url argumnets here to pass to api.php
//for example "id=5&parent=6"
dataType: 'json', //data format
success: function(data) //on recieve of reply
{
var id = data[0]; //get id
var vname = data[1]; //get name
//--------------------------------------------------------------------
// 3) Update html content
//--------------------------------------------------------------------
$('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname); //Set output element html
//recommend reading up on jquery selectors they are awesome
// http://api.jquery.com/category/selectors/
}
});
});
</script>
</body>
</html>4) Test it!
- Goto client.php in your browser, if all is well you should see the following:

and thats it! a basic example for using jquery ajax and php for fetching data from a database.
Download source files: ajax01.tar.gz
If you don't see anything check that you have javascript enabled in your browser.
Re: Using JQuery AJAX and php to fetch data from a mysql database
To get info from rows other than the first row
http://stackoverflow.com/questions/8019489/simple-ajax-jquery-script-how...
Re: Using JQuery AJAX and php to fetch data from a mysql database
Just to make it clear for the real beginners.
If you were wondering what DB.php was, it is the below code.
//--------------------------------------------------------------------------
// Example php script for fetching data from mysql database
//--------------------------------------------------------------------------
$host = "localhost";
$user = "username";
$pass = "userpw";
$databaseName = "ajax01";
$tableName = "variables";
?>
You should remove it from the api.php and put it in another file called DB.php
Leave in the api.php file though.
Re: Using JQuery AJAX and php to fetch data from a mysql database
HI,
This is really a nice script. How can I display multiple rows ? I need a while in my PHP, this is doable but what to do in Jquery ?
Re: Using JQuery AJAX and php to fetch data from a mysql database
use this:
while($row = mysql_fetch_row($result)){
$table_data[]= array("id=>"$row['id'],name=>$row['name']);
}
echo json_encode($table_data);
Re: Using JQuery AJAX and php to fetch data from a mysql database
Hi,
Interesting and a helpful post :)
I'm a beginner in PHP and jQuery.
I have this application which retrieves details of students from a MySQL database and displays in a tables made of
So I need to know how to extend your code to achieve this.
I tried getting the total number of rows using mysql_fetch_row() and run a for loop till all the rows are printed.
But I couldn't get the row-results and number of rows from the success:function().So I also want to know how to do that.
this what i have tried to just print a single row of the table.But it didn't work :(
I would appreciate your help in this.
Thanks in advance :)
Cheers....!!!!
Re: Using JQuery AJAX and php to fetch data from a mysql database
Hello Sirini, do you think you could post up the code that you have tired. Is this what you need?
$result = result of MYSQL query
while($row = mysql_fetch_array($result))
{
}
Re: Using JQuery AJAX and php to fetch data from a mysql database
:( I am also new to jquery and I am stucked with the multiple lines
I am using this code in the api.php file:
while($row = mysql_fetch_row($result)){
$table_data[]= array("id"=>$row['id'],"name"=>$row['name']);
}
echo json_encode($table_data);
----
and the closest thing I managed to get was only one result displayed in the "client.php".
If I check the "api.php" in the browser it displays the following:
[{"id":value,"name":value},{"id":value,"name":value},{"id":value,"name":value},{"id":value,"name":value},{"id":value,"name":value},{"id":value,"name":value},{"id":value,"name":value},{"id":value,"name":value},{"id":value,"name":value}]
Re: Using JQuery AJAX and php to fetch data from a mysql database
This is cool. How can this be used to update a html table with multiple mysql records or insert the latest row into the table?
Re: Using JQuery AJAX and php to fetch data from a mysql database
Hi very nice write up!
It would be nice to see an example of JSON + php + ajax + FLOT graph + mysql
In a way that instead of loading the whole graph every 10 seconds, it queries a mysql table, and if the value has changes from last time (ie, there is a new registry in the database) then the flot graph is updated with that point without having to load everything agian.
Is it at all possible?
Thanks
Re: Using JQuery AJAX and php to fetch data from a mysql database
Sure, yes the example here does this: http://openenergymonitor.org/emon/node/88