Below is a very basic web service using PHP and MySQL. The output of this web service is either XML or JSON.
In the web service, I’m trying to get a list of all active users from the database.
//connect to the db $conn = mysql_connect("localhost","username","password") or die("Cannot connect to the DB"); mysql_select_db("db_name",$conn) or die("Cannot select the DB"); //get the variables or set them to default $num_users = isset($_GET["num"]) ? intval($_GET["num"]) : 10; //10 is the default $format = strtolower($_GET["format"]) == "json" ? "json" : "xml"; //xml is the default //get the details from the database $query = "SELECT firstname, lastname FROM users WHERE user_isactive = 'y' ORDER BY user_id DESC LIMIT $num_users"; $result = mysql_query($query, $conn); //create an array of the data fetched from the database $users = array(); if(mysql_num_rows($result)) { while($user = mysql_fetch_assoc($result)) { $users[] = array('user'=>$user); } } //output the requested format if($format == "json") { header("Content-type: application/json"); echo json_encode(array('users'=>$users)); } else { header("Content-type: text/xml"); echo "<users>"; foreach($users as $index => $user) { foreach($post as $key => $value) { echo "<$key>"; if(is_array($value)) { foreach($value as $tag => $val) { echo "<$tag>$val</$tag>"; } } echo "</$key>"; } } echo "</users>"; }
Here is a sample URL of how the first 10 rows can be retrieved in XML format.
https://www.shounakgupte.com/web-service.php?num=10&format=xml
The above URL will retrieve the data below:
<users> <user> <firstname>John</firstname> <lastname>Doe</lastname> </user> <user> <firstname>Jane</firstname> <lastname>Doe</lastname> </user> </users>