Problem description
Data not able insert into MySQL but the value get displayed using `print_r($listItems).
I wanted to send arraylist(SearchResults)
to MySQL
from android to Php
MySQL
. And the issue I facing now is the data are not inserted into MySQL
.
WorkDetails.java
public void addWorkDetails(ArrayList<SearchResults> listItems)
{
JSONArray jsonArray = new JSONArray();
try
{
for (SearchResults s : listItems)
{
JSONObject object= new JSONObject();
object.put("project", s.getProject());
String des=s.getDescription();
String [] description=des.split(":");
object.put("work_description", description[1]);
Toast.makeText(getApplicationContext(), description[1],Toast.LENGTH_LONG).show();
String per=s.getProgress();
String [] progress=per.split(":");
object.put("percentage", progress[1]);
String in=s.getTimeIn();
String []IN=in.split(":");
object.put("timeIn", IN[1]);
String out=s.getTimeOut();
String []OUT=out.split(":");
object.put("timeOut",OUT[1]);
jsonArray.put(object);
}
}catch(JSONException e)
{
e.printStackTrace();
}
AddWorkDetails ru = new AddWorkDetails(jsonArray);
ru.execute();
}
class AddWorkDetails extends AsyncTask<String, Void, String> {
ProgressDialog loading;
JSONArray jsonArray;
AddWorkDetails(JSONArray jsonArray){
this.jsonArray = jsonArray;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(WorkDetailsTable.this, "Please Wait",null, true, true);
}
@Override
protected String doInBackground(String... params) {
HashMap<String, String> data = new HashMap<String,String>();
data.put("listItems",jsonArray.toString());
RequestHandler rh=new RequestHandler();
String result = rh.sendPostRequest(Config.ADD_WORKDETAILS,data);
return result;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
}
}
Php
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
$mysqli = new mysqli("127.0.0.1:3307", "root", "", "androiddb");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$listItems = json_decode($_POST['listItems'], true);
$sql="INSERT INTO work_details
(project, work_description, percentage, timeIn, timeOut)
VALUES
(?, ?, ?, ?, ?)";
print_r($listItems);
if (!($stmt = $mysqli->prepare($sql))) {
echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
foreach($listItems as $item){
$stmt->bind_param("ssssss", $item['project'], $item['work_description'], $item['percentage'], $item['timeIn'], $item['timeOut']);
if (!$stmt->execute()) {
echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
}
}
}
$mysqli->close();
}
?>
Output
Value get displayed using
print_r($listItems);
Config
public static final String ADD_WORKDETAILS="http://192.168.107.115:80/Android/CRUD/addWorkDetails.php";