js 解析php arraylist,使用JSON将ArrayList从Android发送到PHP脚本

什么是场景

我想从Android向服务器发送多个ArrayList(通常为5个),并将其插入到mysql数据库中。

我成功完成的工作

我已使用JSON成功将Android中的单个值和多个值发送到PHP脚本

我已经使用JSON从mysql数据库到android接收了单条记录和多条记录

这是用于从服务器插入值并从中获取价值的代码

class TeacherLogin1 extends AsyncTask {

String name,pass;

Context contextt;

int idofteach = 0;

int codee = 0;

TeacherLogin1(String pass1,String name1,Context context)

{

name = name1;

pass = pass1;

contextt = context;

}

@Override

protected void onPreExecute() {

super.onPreExecute();

}

@Override

protected Void doInBackground(Void... arg0) {

codee = Authenticate(name,pass);

return null;

}

@Override

protected void onPostExecute(Void result) {

super.onPostExecute(result);

if(codee!=0)

{

Intent teachers = new Intent(context,TeachersView.class);

teachers.putExtra("TID", codee);

teachers.putExtra("TNAME", TeachName);

teachers.putExtra("sub1", subj1);

teachers.putExtra("sub2", subj2);

teachers.putExtra("sub3", subj3);

teachers.putExtra("sub4", subj4);

startActivity(teachers);

}

else

Toast.makeText(context, "Wrong Details", Toast.LENGTH_SHORT).show();

codee = 0;

}

}

public int Authenticate(String name,String Pass)

{

ArrayList nameValuePairs = new ArrayList();

// put the values of id and name in that variable

nameValuePairs.add(new BasicNameValuePair("name",name));

nameValuePairs.add(new BasicNameValuePair("pass",Pass));

try

{

HttpClient httpclient = new DefaultHttpClient();

ScriptsFilePath a = new ScriptsFilePath();

HttpPost httppost = new HttpPost(a.TeacherAuthen);

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpclient.execute(httppost);

HttpEntity entity = response.getEntity();

is = entity.getContent();

Log.e("pass 1", "connection success ");

}

catch(Exception e)

{

Log.e("Fail 1", e.toString());

}

try

{

BufferedReader reader = new BufferedReader

(new InputStreamReader(is,"iso-8859-1"),8);

StringBuilder sb = new StringBuilder();

while ((line = reader.readLine()) != null)

{

sb.append(line + "\n");

}

is.close();

result = sb.toString();

Log.e("pass 2", "connection success ");

}

catch(Exception e)

{

Log.e("Fail 2", e.toString());

}

try {

JSONObject jsonResponse = new JSONObject(result);

if(jsonResponse != null)

{

JSONArray jsonMainNode = jsonResponse.optJSONArray("GetTeacher");

for (int i = 0; i < jsonMainNode.length(); i++) {

JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);

code = jsonChildNode.optInt("ID");

TeachName= jsonChildNode.optString("Name");

subj1= jsonChildNode.optString("subject1");

subj2= jsonChildNode.optString("subject2");

subj3= jsonChildNode.optString("subject3");

subj4= jsonChildNode.optString("subject4");

}

}

} catch (JSONException e) {

// Toast.makeText(getApplicationContext(), "Error" + e.toString(),

// Toast.LENGTH_SHORT).show();

}

return code;

}

和TeacherAuthen.php脚本

error_reporting(E_ALL ^ E_DEPRECATED);

$host="localhost";

$uname="root";

$pwd='';

$db="examsystem";

$con = mysql_connect($host,$uname,$pwd) or die("connection failed");

mysql_select_db($db,$con) or die("db selection failed");

if(isset($_REQUEST)){

$name=$_REQUEST['name'];

$pass=$_REQUEST['pass'];}

$flag['code']=0;

$name1['code1'] = "sdf";

$sql = "SELECT * FROM teachers WHERE Username ='$name' and Pass='$pass'";

$result = mysql_query($sql);

$json = array();

if(mysql_num_rows($result)){

while($row=mysql_fetch_assoc($result)){

$json['GetTeacher'][]=$row;

}

}

echo json_encode($json);

mysql_close($con);

?>

我被困在那里

我没有如何将ArrayList从android发送到PHP脚本。

例如,我想将这些arraylist发送到php script =

ArrayList Questions= new ArrayList();

ArrayList A1= new ArrayList();

ArrayList A2= new ArrayList();

ArrayList A3= new ArrayList();

ArrayList A4= new ArrayList();

然后在PHP脚本中我要这样插入

"INSERT INTO `Question` (`ID` ,`Question` ,`A1` ,`A2` ,`A3` , `A4` ) VALUES (NULL, '$Question', '$A1', '$A2', '$A3' ,'$A4'); "

如果我什至可以发送单个arrayList,那么我想我可以通过一种方法来完成上述操作

谢谢你的时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值