从机器人到PHP的MySQL发送的ArrayList [英] Send ArrayList from android to php MySQL

查看:209
本文介绍了从机器人到PHP的MySQL发送的ArrayList的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在表 work_details ,我有7列(ID,项目,work_description,百分比,time_in,TIME_OUT,FK)。现在,我要保存的ArrayList FK 表。

In table work_details, I have 7 column (id, project, work_description, percentage, time_in, time_out, fk). Now I want to save the arraylist and fk to the table.

我试图code,但我知道这不是正确的方法。

I have tried to code but I know this is not the correct way.

  public void addWorkDetails(ArrayList<SearchResults> listItems, long id)
    {
        JSONObject object= new JSONObject();

        for(int i=0;i<listItems.size();i++)
        {
            try
            {
                object.put("Count : "+String.valueOf(i + 1),listItems.get(i));
            }catch(JSONException e)
            {
                e.printStackTrace();
            }
        }

        class AddWorkDetails extends AsyncTask<String, Void, String> {
            ProgressDialog loading;

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
                loading = ProgressDialog.show(WorkDetailsTable.this, "Please Wait",null, true, true);
            }

            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                loading.dismiss();
                Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
            }

            @Override
            protected String doInBackground(String... params) {
                HashMap<String, String> data = new HashMap<String,String>();
               // what should I put here ?
                RequestHandler rh=new RequestHandler();
                String result = rh.sendPostRequest(Config.ADD_WORKDETAILS,data);
                return  result;
            }
        }

        AddWorkDetails ru = new AddWorkDetails();
        ru.execute(listItems,id);
    }

的PHP

<?php

   if($_SERVER['REQUEST_METHOD']=='POST'){

   $list[]=$_POST['listItems'];
   $id=$_POST['id'];

   foreach($list as $value){
   $value=mysqli_real_escape_string($val);

    $sql="INSERT INTO work_details (project, work_description, percentage, timeIn, timeOut, id) VALUES ('$val', '$id')";

  //Importing our db connection script
        require_once('dbConnect.php');

        //Executing query to database
        if(mysqli_query($con,$sql)){
            echo ' Added Successfully';
        }else{
            echo 'Could Not Add Data';
        }

        //Closing the database 
        mysqli_close($con);
    }
?>

注意到在 listItems中持有项目,work_description,百分比,time_in和TIME_OUT

推荐答案

您的SQL查询不正确:

Your SQL query is incorrect:

$sql="INSERT INTO work_details (project, work_description, percentage, timeIn, timeOut, id) VALUES ('$val', '$id')";

您有6列设置,并提供了2个值。

You have 6 columns to set and provide only 2 values.

相反遍历 $列表和执行查询每个值,你应该宁可构造查询,而迭代,并在年底执行它只有一次完成时。例如:

Instead of iterating over $list and executing a query for each value, you should rather construct the query while iterating and execute it only once at the end when it is complete. Example:

foreach (...) {
    $sql = $sql . "'$val', ";
    ...
}
$sql = "INSERT INTO work_details (project, work_description, percentage, timeIn, timeOut, id) VALUES (" . $sql . "'$id')";

这仅仅是个想法..我不是一个PHP的家伙,所以那里是我写的probaby错误。

This is just the idea.. I'm not a PHP guy so there's probaby errors in what I wrote.

<青霉>编辑的:这是假定顺序总是在列表中的相同

EDIT : This assumes that order is always the same in the list.

这篇关于从机器人到PHP的MySQL发送的ArrayList的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆