How to connect Android with PHP, MySQL
1 de 48
Like
1.4k
[Link]
Tweet
119
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
2 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
3 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
4 de 48
[Link]
<?php
echo "Welcome, I am connecting Android to PHP, MySQL";
?>
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
5 de 48
[Link]
CREATE DATABASE androidhive;
CREATE TABLE products(
pid int(11) primary key auto_increment,
name varchar(100) not null,
price decimal(10,2) not null,
description text,
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
6 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
7 de 48
[Link]
/*
* All database connection variables
*/
define('DB_USER', "root"); // db user
define('DB_PASSWORD', ""); // db password (mention your db password here)
define('DB_DATABASE', "androidhive"); // database name
define('DB_SERVER', "localhost"); // db server
?>
db_connect.php
<?php
/**
* A class file to connect to database
*/
class DB_CONNECT {
// constructor
function __construct() {
// connecting to database
$this->connect();
}
// destructor
function __destruct() {
// closing db connection
$this->close();
}
/**
* Function to connect with database
*/
function connect() {
// import database connection variables
require_once __DIR__ . '/db_config.php';
// Connecting to mysql database
$con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());
// Selecing database
$db = mysql_select_db(DB_DATABASE) or die(mysql_error()) or die(mysql_error());
// returing connection cursor
return $con;
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
8 de 48
[Link]
// closing db connection
mysql_close();
}
?>
$db = new DB_CONNECT(); // creating class object(will open database connection)
create_product.php
<?php
/*
* Following code will create a new product row
* All product details are read from HTTP Post Request
*/
// array for JSON response
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
9 de 48
[Link]
$name = $_POST['name'];
$price = $_POST['price'];
$description = $_POST['description'];
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
// mysql inserting a new row
$result = mysql_query("INSERT INTO products(name, price, description) VALUES('$name'
// check if row inserted or not
if ($result) {
// successfully inserted into database
$response["success"] = 1;
$response["message"] = "Product successfully created.";
// echoing JSON response
echo json_encode($response);
} else {
// failed to insert row
$response["success"] = 0;
$response["message"] = "Oops! An error occurred.";
// echoing JSON response
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
}
?>
{
}
// echoing JSON response
echo json_encode($response);
"success": 0,
"message": "Required field(s) is missing"
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
10 de 48
{
}
[Link]
"success": 1,
"message": "Product successfully created."
"success": 0,
"message": "Oops! An error occurred."
get_product_details.php
<?php
/*
* Following code will get single product details
* A product is identified by product id (pid)
*/
// array for JSON response
$response = array();
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
// check for post data
if (isset($_GET["pid"])) {
$pid = $_GET['pid'];
// get a product from products table
$result = mysql_query("SELECT *FROM products WHERE pid = $pid");
if (!empty($result)) {
// check for empty result
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
11 de 48
[Link]
$product["pid"] = $result["pid"];
$product["name"] = $result["name"];
$product["price"] = $result["price"];
$product["description"] = $result["description"];
$product["created_at"] = $result["created_at"];
$product["updated_at"] = $result["updated_at"];
// success
$response["success"] = 1;
// user node
$response["product"] = array();
array_push($response["product"], $product);
// echoing JSON response
echo json_encode($response);
} else {
// no product found
$response["success"] = 0;
$response["message"] = "No product found";
// echo no users JSON
echo json_encode($response);
}
} else {
// no product found
$response["success"] = 0;
$response["message"] = "No product found";
// echo no users JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
}
?>
// echoing JSON response
echo json_encode($response);
"success": 1,
"product": [
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
12 de 48
{
}
[Link]
"created_at": "2012-04-29 [Link]",
"updated_at": "0000-00-00 [Link]"
"success": 0,
"message": "No product found"
get_all_products.php
<?php
/*
* Following code will list all the products
*/
// array for JSON response
$response = array();
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
// get all products from products table
$result = mysql_query("SELECT *FROM products") or die(mysql_error());
// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// products node
$response["products"] = array();
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
13 de 48
[Link]
$product["name"] = $row["name"];
$product["price"] = $row["price"];
$product["created_at"] = $row["created_at"];
$product["updated_at"] = $row["updated_at"];
// push single product into final response array
array_push($response["products"], $product);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";
}
?>
// echo no users JSON
echo json_encode($response);
"products": [
{
"pid": "1",
"name": "iPhone 4S",
"price": "300.00",
"created_at": "2012-04-29
"updated_at": "0000-00-00
},
{
"pid": "2",
"name": "Macbook Pro",
"price": "600.00",
"created_at": "2012-04-29
"updated_at": "0000-00-00
},
{
"pid": "3",
"name": "Macbook Air",
"price": "800.00",
"created_at": "2012-04-29
"updated_at": "0000-00-00
[Link]",
[Link]"
[Link]",
[Link]"
[Link]",
[Link]"
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
14 de 48
{
}
[Link]
"created_at": "2012-04-29 [Link]",
"updated_at": "0000-00-00 [Link]"
],
"success": 1
"success": 0,
"message": "No products found"
update_product.php
<?php
/*
* Following code will update a product information
* A product is identified by product id (pid)
*/
// array for JSON response
$response = array();
// check for required fields
if (isset($_POST['pid']) && isset($_POST['name']) && isset($_POST['price']) && isset(
$pid = $_POST['pid'];
$name = $_POST['name'];
$price = $_POST['price'];
$description = $_POST['description'];
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
15 de 48
[Link]
// check if row inserted or not
if ($result) {
// successfully updated
$response["success"] = 1;
$response["message"] = "Product successfully updated.";
// echoing JSON response
echo json_encode($response);
} else {
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
}
?>
{
}
// echoing JSON response
echo json_encode($response);
"success": 1,
"message": "Product successfully updated."
delete_product.php
<?php
/*
* Following code will delete a product from table
* A product is identified by product id (pid)
*/
// array for JSON response
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
16 de 48
[Link]
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
// mysql update row with matched pid
$result = mysql_query("DELETE FROM products WHERE pid = $pid");
// check if row deleted or not
if (mysql_affected_rows() > 0) {
// successfully updated
$response["success"] = 1;
$response["message"] = "Product successfully deleted";
// echoing JSON response
echo json_encode($response);
} else {
// no product found
$response["success"] = 0;
$response["message"] = "No product found";
// echo no users JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
}
?>
{
}
// echoing JSON response
echo json_encode($response);
"success": 1,
"message": "Product successfully deleted"
"success": 0,
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
17 de 48
[Link]
[Link]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="[Link]
package="[Link]"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="8" />
<application
android:configChanges="keyboardHidden|orientation"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".MainScreenActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="[Link]" />
<category android:name="[Link]" />
</intent-filter>
</activity>
<!-- All Product Activity -->
<activity
android:name=".AllProductsActivity"
android:label="All Products" >
</activity>
<!-- Add Product Activity -->
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
18 de 48
[Link]
<!-- Edit Product Activity -->
<activity
android:name=".EditProductActivity"
android:label="Edit Product" >
</activity>
</application>
<!-- Internet Permissions -->
<uses-permission android:name="[Link]" />
</manifest>
main_screen.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
<!-- Sample Dashboard screen with Two buttons -->
<!-- Button to view all products screen -->
<Button android:id="@+id/btnViewProducts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="View Products"
android:layout_marginTop="25dip"/>
<!-- Button to create a new product screen -->
<Button android:id="@+id/btnCreateProduct"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Add New Products"
android:layout_marginTop="25dip"/>
</LinearLayout>
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
19 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
20 de 48
import
import
import
import
import
[Link]
[Link];
[Link];
[Link];
[Link];
[Link];
public class MainScreenActivity extends Activity{
Button btnViewProducts;
Button btnNewProduct;
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].main_screen);
// Buttons
btnViewProducts = (Button) findViewById([Link]);
btnNewProduct = (Button) findViewById([Link]);
// view products click event
[Link](new [Link]() {
@Override
public void onClick(View view) {
// Launching All products Activity
Intent i = new Intent(getApplicationContext(), AllProductsActivity.
startActivity(i);
});
// view products click event
[Link](new [Link]() {
@Override
public void onClick(View view) {
// Launching create new product activity
Intent i = new Intent(getApplicationContext(), NewProductActivity.
startActivity(i);
});
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
21 de 48
[Link]
all_products.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<!-- Main ListView
Always give id value as list(@android:id/list)
-->
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<!-- Product id (pid) - will be HIDDEN - used to pass to other activity -->
<TextView
android:id="@+id/pid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<!-- Name Label -->
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="6dip"
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
22 de 48
[Link]
[Link]
package [Link];
import [Link];
import [Link];
import [Link];
import
import
import
import
[Link];
[Link];
[Link];
[Link];
import
import
import
import
import
import
import
import
import
import
import
import
import
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
public class AllProductsActivity extends ListActivity {
// Progress Dialog
private ProgressDialog pDialog;
// Creating JSON Parser object
JSONParser jParser = new JSONParser();
ArrayList<HashMap<String, String>> productsList;
// url to get all products list
private static String url_all_products = "[Link]
// JSON Node names
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
23 de 48
[Link]
// products JSONArray
JSONArray products = null;
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].all_products);
// Hashmap for ListView
productsList = new ArrayList<HashMap<String, String>>();
// Loading products in Background Thread
new LoadAllProducts().execute();
// Get listview
ListView lv = getListView();
// on seleting single product
// launching Edit Product Screen
[Link](new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String pid = ((TextView) [Link]([Link])).getText()
.toString();
// Starting new intent
Intent in = new Intent(getApplicationContext(),
[Link]);
// sending pid to next activity
[Link](TAG_PID, pid);
});
// starting new activity and expecting some response back
startActivityForResult(in, 100);
}
// Response from Edit Product Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
[Link](requestCode, resultCode, data);
// if result code 100
if (resultCode == 100) {
// if result code 100 is received
// means user edited/deleted product
// reload this screen again
Intent intent = getIntent();
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
24 de 48
[Link]
/**
* Background Async Task to Load all product by making HTTP Request
* */
class LoadAllProducts extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
[Link]();
pDialog = new ProgressDialog([Link]);
[Link]("Loading products. Please wait...");
[Link](false);
[Link](false);
[Link]();
}
/**
* getting All products from url
* */
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = [Link](url_all_products, "GET", params);
// Check your log cat for JSON reponse
Log.d("All Products: ", [Link]());
try {
// Checking for SUCCESS TAG
int success = [Link](TAG_SUCCESS);
if (success == 1) {
// products found
// Getting Array of Products
products = [Link](TAG_PRODUCTS);
// looping through All Products
for (int i = 0; i < [Link](); i++) {
JSONObject c = [Link](i);
// Storing each json item in variable
String id = [Link](TAG_PID);
String name = [Link](TAG_NAME);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
25 de 48
[Link]
[Link](map);
}
} else {
// no products found
// Launch Add New product Activity
Intent i = new Intent(getApplicationContext(),
[Link]);
// Closing all previous activities
[Link](Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
} catch (JSONException e) {
[Link]();
}
}
return null;
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog after getting all products
[Link]();
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
[Link], productsList,
[Link].list_item, new String[] { TAG_PID,
TAG_NAME},
new int[] { [Link], [Link] });
// updating listview
setListAdapter(adapter);
}
});
}
}
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
26 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
27 de 48
[Link]
add_product.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- Name Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Product Name"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17dip"/>
<!-- Input Name -->
<EditText android:id="@+id/inputName"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"/>
<!-- Price Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Price"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17dip"/>
<!-- Input Price -->
<EditText android:id="@+id/inputPrice"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:inputType="numberDecimal"/>
<!-- Description Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Description"
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
28 de 48
[Link]
<!-- Input description -->
<EditText android:id="@+id/inputDesc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:lines="4"
android:gravity="top"/>
<!-- Button Create Product -->
<Button android:id="@+id/btnCreateProduct"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Create Product"/>
</LinearLayout>
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
29 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
30 de 48
[Link]
[Link]
package [Link];
import [Link];
import [Link];
import
import
import
import
[Link];
[Link];
[Link];
[Link];
import
import
import
import
import
import
import
import
import
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
public class NewProductActivity extends Activity {
// Progress Dialog
private ProgressDialog pDialog;
JSONParser jsonParser = new JSONParser();
EditText inputName;
EditText inputPrice;
EditText inputDesc;
// url to create new product
private static String url_create_product = "[Link]
// JSON Node names
private static final String TAG_SUCCESS = "success";
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].add_product);
// Edit Text
inputName = (EditText) findViewById([Link]);
inputPrice = (EditText) findViewById([Link]);
inputDesc = (EditText) findViewById([Link]);
// Create button
Button btnCreateProduct = (Button) findViewById([Link]);
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
31 de 48
});
[Link]
// creating new product in background thread
new CreateNewProduct().execute();
/**
* Background Async Task to Create new product
* */
class CreateNewProduct extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
[Link]();
pDialog = new ProgressDialog([Link]);
[Link]("Creating Product..");
[Link](false);
[Link](true);
[Link]();
}
/**
* Creating product
* */
protected String doInBackground(String... args) {
String name = [Link]().toString();
String price = [Link]().toString();
String description = [Link]().toString();
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
[Link](new BasicNameValuePair("name", name));
[Link](new BasicNameValuePair("price", price));
[Link](new BasicNameValuePair("description", description));
// getting JSON Object
// Note that create product url accepts POST method
JSONObject json = [Link](url_create_product,
"POST", params);
// check log cat fro response
Log.d("Create Response", [Link]());
// check for success tag
try {
int success = [Link](TAG_SUCCESS);
if (success == 1) {
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
32 de 48
[Link]
finish();
} else {
// failed to create product
}
} catch (JSONException e) {
[Link]();
}
}
return null;
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once done
[Link]();
}
}
edit_product.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- Name Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Product Name"
android:paddingLeft="10dip"
android:paddingRight="10dip"
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
33 de 48
[Link]
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"/>
<!-- Price Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Price"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17dip"/>
<!-- Input Price -->
<EditText android:id="@+id/inputPrice"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:singleLine="true"
android:inputType="numberDecimal"/>
<!-- Description Label -->
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Description"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dip"
android:textSize="17dip"/>
<!-- Input description -->
<EditText android:id="@+id/inputDesc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:layout_marginBottom="15dip"
android:lines="4"
android:gravity="top"/>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- Button Create Product -->
<Button android:id="@+id/btnSave"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Save Changes"
android:layout_weight="1"/>
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
34 de 48
[Link]
android:text="Delete"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
[Link]
package [Link];
import [Link];
import [Link];
import
import
import
import
import
[Link];
[Link];
[Link];
[Link];
[Link];
import
import
import
import
import
import
import
import
import
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
public class EditProductActivity extends Activity {
EditText
EditText
EditText
EditText
txtName;
txtPrice;
txtDesc;
txtCreatedAt;
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
35 de 48
[Link]
// Progress Dialog
private ProgressDialog pDialog;
// JSON parser class
JSONParser jsonParser = new JSONParser();
// single product url
private static final String url_product_detials = "[Link]
// url to update product
private static final String url_update_product = "[Link]
// url to delete product
private static final String url_delete_product = "[Link]
// JSON
private
private
private
private
private
private
Node names
static final
static final
static final
static final
static final
static final
String
String
String
String
String
String
TAG_SUCCESS = "success";
TAG_PRODUCT = "product";
TAG_PID = "pid";
TAG_NAME = "name";
TAG_PRICE = "price";
TAG_DESCRIPTION = "description";
@Override
public void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].edit_product);
// save button
btnSave = (Button) findViewById([Link]);
btnDelete = (Button) findViewById([Link]);
// getting product details from intent
Intent i = getIntent();
// getting product id (pid) from intent
pid = [Link](TAG_PID);
// Getting complete product details in background thread
new GetProductDetails().execute();
// save button click event
[Link](new [Link]() {
});
@Override
public void onClick(View arg0) {
// starting background task to update product
new SaveProductDetails().execute();
}
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
36 de 48
});
[Link]
// deleting product in background thread
new DeleteProduct().execute();
}
/**
* Background Async Task to Get complete product details
* */
class GetProductDetails extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
[Link]();
pDialog = new ProgressDialog([Link]);
[Link]("Loading product details. Please wait...");
[Link](false);
[Link](true);
[Link]();
}
/**
* Getting product details in background thread
* */
protected String doInBackground(String... params) {
// updating UI from Background Thread
runOnUiThread(new Runnable() {
public void run() {
// Check for success tag
int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
[Link](new BasicNameValuePair("pid", pid));
// getting product details by making HTTP request
// Note that product details url will use GET request
JSONObject json = [Link](
url_product_detials, "GET", params);
// check your log for json response
Log.d("Single Product Details", [Link]());
// json success tag
success = [Link](TAG_SUCCESS);
if (success == 1) {
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
37 de 48
[Link]
JSONObject product = [Link](0);
// product with this pid found
// Edit Text
txtName = (EditText) findViewById([Link]);
txtPrice = (EditText) findViewById([Link]);
txtDesc = (EditText) findViewById([Link]);
// display product data in EditText
[Link]([Link](TAG_NAME));
[Link]([Link](TAG_PRICE));
[Link]([Link](TAG_DESCRIPTION));
});
}
}else{
// product with pid not found
}
} catch (JSONException e) {
[Link]();
}
return null;
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once got all details
[Link]();
}
/**
* Background Async Task to Save product Details
* */
class SaveProductDetails extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
[Link]();
pDialog = new ProgressDialog([Link]);
[Link]("Saving product ...");
[Link](false);
[Link](true);
[Link]();
}
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
38 de 48
[Link]
// getting updated data from EditTexts
String name = [Link]().toString();
String price = [Link]().toString();
String description = [Link]().toString();
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
[Link](new BasicNameValuePair(TAG_PID, pid));
[Link](new BasicNameValuePair(TAG_NAME, name));
[Link](new BasicNameValuePair(TAG_PRICE, price));
[Link](new BasicNameValuePair(TAG_DESCRIPTION, description));
// sending modified data through http request
// Notice that update product url accepts POST method
JSONObject json = [Link](url_update_product,
"POST", params);
// check json success tag
try {
int success = [Link](TAG_SUCCESS);
if (success == 1) {
// successfully updated
Intent i = getIntent();
// send result code 100 to notify about product update
setResult(100, i);
finish();
} else {
// failed to update product
}
} catch (JSONException e) {
[Link]();
}
}
return null;
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once product uupdated
[Link]();
}
/*****************************************************************
* Background Async Task to Delete Product
* */
class DeleteProduct extends AsyncTask<String, String, String> {
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
39 de 48
[Link]
protected void onPreExecute() {
[Link]();
pDialog = new ProgressDialog([Link]);
[Link]("Deleting Product...");
[Link](false);
[Link](true);
[Link]();
}
/**
* Deleting product
* */
protected String doInBackground(String... args) {
// Check for success tag
int success;
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
[Link](new BasicNameValuePair("pid", pid));
// getting product details by making HTTP request
JSONObject json = [Link](
url_delete_product, "POST", params);
// check your log for json response
Log.d("Delete Product", [Link]());
// json success tag
success = [Link](TAG_SUCCESS);
if (success == 1) {
// product successfully deleted
// notify previous activity by sending code 100
Intent i = getIntent();
// send result code 100 to notify about product deletion
setResult(100, i);
finish();
}
} catch (JSONException e) {
[Link]();
}
}
return null;
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once product deleted
[Link]();
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
40 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
41 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
42 de 48
[Link]
package [Link];
import
import
import
import
import
import
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
import
import
import
import
import
import
import
import
import
import
import
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
[Link];
import [Link];
public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";
// constructor
public JSONParser() {
}
// function get json from url
// by making HTTP POST or GET mehtod
public JSONObject makeHttpRequest(String url, String method,
List<NameValuePair> params) {
// Making HTTP request
try {
// check for request method
if(method == "POST"){
// request method is POST
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
[Link](new UrlEncodedFormEntity(params));
HttpResponse httpResponse = [Link](httpPost);
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
43 de 48
[Link]
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = [Link](params, "utf-8");
url += "?" + paramString;
HttpGet httpGet = new HttpGet(url);
HttpResponse httpResponse = [Link](httpGet);
HttpEntity httpEntity = [Link]();
is = [Link]();
} catch (UnsupportedEncodingException e) {
[Link]();
} catch (ClientProtocolException e) {
[Link]();
} catch (IOException e) {
[Link]();
}
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = [Link]()) != null) {
[Link](line + "\n");
}
[Link]();
json = [Link]();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + [Link]());
}
// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + [Link]());
}
// return JSON String
return jObj;
}
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
44 de 48
[Link]
Follow @RaviTamada
2,616 followers
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
45 de 48
[Link]
AndroidHive
Like
16,427 people like AndroidHive.
Facebook social plugin
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
46 de 48
[Link]
.
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
47 de 48
[Link]
30/03/2014 09:00 p. m.
How to connect Android with PHP, MySQL
48 de 48
[Link]
30/03/2014 09:00 p. m.