gpt4 book ai didi

php - 如何从 Android 传递变量以供 PHP 文件读取,然后 PHP 文件读取 MYSQL 数据库并返回其他数据?

转载 作者:行者123 更新时间:2023-11-30 01:26:07 25 4
gpt4 key购买 nike

这是我的 PHP 文件,需要从 android 接收分类变量,然后使用它可以从数据库中提取特定数据:

php

include('connect.php');

$asortid=$_POST['asortid'];
$asortlastname=$_POST['asortlastname'];
$asortemail=$_POST['asortemail'];
$afilter = $_POST['afilter'];

if ($afilter=='') { $asorturgency="5"}
if ($afilter!='') {

// SET FILTERS
if ($asortid=='' || $asortid=='All ID') { $mysortid="%"; } else{
$mysortid="%".$asortid."%";
}
if ($asortemail=='' || $asortemail=='Any Email') {
$mysortemail="%"; } else {
$mysortemail="%".$asortemail."%"; }


// MASTER RESULT QUERY
$query=mysql_query("SELECT * FROM names WHERE (id LIKE '".$mysortid."') AND (email LIKE '".$mysortemail."');

//execute query
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
$response["success"] = 0;
$response["message"] = "Database Error!";
die(json_encode($response));
}

// Finally, we can retrieve all of the found rows into an array using fetchAll
$rows = $stmt->fetchAll();

if ($rows) {
$response["success"] = 1;
$response["message"] = "Post Available!";
$response["posts"] = array();



foreach ($rows as $row) {
$post = array();
$post["id"] = $row["id"];
$post["firstname"] = $row["firstname"];
$post["middlename"] = $row["middlename"];
$post["lastname"] = $row["lastname"];
$post["email"] = $row["email"];
$post["comments"] = $row["comments"];

//update our repsonse JSON data
array_push($response["posts"], $post);
}

//echoing JSON response
echo json_encode($response);

}
else {
$response["success"] = 0;
$response["message"] = "No Post Available!";
die(json_encode($response));
}

这是我尝试发送要读取的帖子数据的 Android 文件:

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class Display extends ListActivity {

// Progress Dialog
private ProgressDialog tDialog;
JSONParser myjsonParser = new JSONParser();

private static final String SORTNAMES = "http://leadpronow.com/demo/sortnames.php";

String sortid, sortname, sorturgency, filtered;

// JSON IDS:
private static final String TAG_DPOSTS = "posts";
private static final String TAG_DID = "id";
private static final String TAG_DFIRSTNAME = "firstname";
private static final String TAG_DMIDDLENAME = "middlename";
private static final String TAG_DLASTNAME = "lastname";
private static final String TAG_DEMAIL = " email";
private static final String TAG_DCOMMENTS = "comments";

// An array of all of our leads
private JSONArray mName = null;
// manages all of our comments in a list.
private ArrayList<HashMap<String, String>> mNameList;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// note that use read_comments.xml instead of our single_post.xml
setContentView(R.layout.readpost);

}

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
// loading the comments via AsyncTask
new LoadNames().execute();
}

public void updateJSONdata() {

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(SORTNAMES);

try {

Intent in = getIntent();
filtered = in.getStringExtra("filtered");
sortid = in.getStringExtra("sortid");
sortemail = in.getStringExtra("sortemail");
sorturgency = in.getStringExtra("sorturgency");


List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair> (4);
nameValuePairs.add(new BasicNameValuePair("afilter", filtered));
nameValuePairs.add(new BasicNameValuePair("asortid", sortid));
nameValuePairs.add(new BasicNameValuePair("asortemail",sortemail));
nameValuePairs.add(new BasicNameValuePair("asorturgency",sorturgency));

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse httpresponse = httpclient.execute(httppost);
} catch (ClientProtocolException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

mNamesList = new ArrayList<HashMap<String, String>>();

JSONParser jParser = new JSONParser();

JSONObject json = jParser.getJSONFromUrl(SORTNAMES);

try {
mLeads = json.getJSONArray(TAG_DPOSTS);

// looping through all posts according to the json object returned
for (int i = 0; i < mLeads.length(); i++) {
JSONObject c = mLeads.getJSONObject(i);

// gets the content of each tag
String did = c.getString(TAG_DID);
String dfirstname = c.getString(TAG_DFIRSTNAME);
String dmiddlename = c.getString(TAG_DMIDDLENAME);
String dlastname = c.getString(TAG_DLASTNAME);
String demail = c.getString(TAG_DEMAIL);
String dcomments = c.getString(TAG_DCOMMENTS);


// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();

map.put(TAG_DID, did);
map.put(TAG_DFIRSTNAME, dfirstname);
map.put(TAG_DMIDDLENAME, dmiddlename);
map.put(TAG_DLASTNAME, dlastname);
map.put(TAG_DEMAIL, demail);
map.put(TAG_DCOMMENTS, dcomments);

// adding HashList to ArrayList
mLeadsList.add(map);

}

} catch (JSONException e) {
e.printStackTrace();
}
}

/**
* Inserts the parsed data into the listview.
*/
private void updateList() {
// For a ListActivity we need to set the List Adapter, and in order to
// do
// that, we need to create a ListAdapter. This SimpleAdapter,
// will utilize our updated Hashmapped ArrayList,
// use our single_post xml template for each item in our list,
// and place the appropriate info from the list to the
// correct GUI id. Order is important here.

ListAdapter adapter = new SimpleAdapter(this, mNamesList,
R.layout.singlelead, new String[] { TAG_DFIRSTNAME,
TAG_DMIDDLENAME, TAG_DLASTNAME, TAG_DID,
TAG_DEMAIL, TAG_DCOMMENTS},
new int[] { R.id.dlfirstname, R.id.dlmiddlename,
R.id.dllastname, R.id.dlid, R.id.dlemail,
R.id.dlcomments});

setListAdapter(adapter);

ListView lv = getListView();

lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
// getting values from selected ListItem
String longid = ((TextView) v.findViewById(R.id.id)).getText()
.toString();

// Starting new intent
Intent in = new Intent(getApplicationContext(), EditUsers.class);
// sending pid to next activity
in.putExtra("Listitem", longid);

// starting new activity and expecting some response back
startActivity(in);
}
});
}

public class LoadLeads extends AsyncTask<Void, Void, Boolean> {

@Override
protected void onPreExecute() {
super.onPreExecute();
tDialog = new ProgressDialog(LeadDisplay.this);
tDialog.setMessage("Loading Leads...");
tDialog.setIndeterminate(false);
tDialog.setCancelable(true);
tDialog.show();
}

@Override
protected Boolean doInBackground(Void... arg0) {
updateJSONdata();
return null;

}

@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
tDialog.dismiss();
updateList();
}
}
}

所以我需要 ID、名字、中间名、姓氏、电子邮件和评论显示在我的 ListView 中。我的错误是没有可用的帖子。

07-31 09:58:43.943: E/JSON Parser(13176): Error parsing data org.json.JSONException: End of input at character 0 of 
07-31 09:58:43.943: W/System.err(13176): org.json.JSONException: No value for posts
07-31 09:58:43.943: W/System.err(13176): at org.json.JSONObject.get(JSONObject.java:354)
07-31 09:58:43.943: W/System.err(13176): at org.json.JSONObject.getJSONArray(JSONObject.java:544)
07-31 09:58:43.943: W/System.err(13176): at com.example.mysqltest.LeadDisplay.updateJSONdata(LeadDisplay.java:151)
07-31 09:58:43.943: W/System.err(13176): at com.example.mysqltest.LeadDisplay$LoadLeads.doInBackground(LeadDisplay.java:252)
07-31 09:58:43.943: W/System.err(13176): at com.example.mysqltest.LeadDisplay$LoadLeads.doInBackground(LeadDisplay.java:1)
07-31 09:58:43.943: W/System.err(13176): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-31 09:58:43.943: W/System.err(13176): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
07-31 09:58:43.943: W/System.err(13176): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-31 09:58:43.943: W/System.err(13176): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
07-31 09:58:43.943: W/System.err(13176): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
07-31 09:58:43.943: W/System.err(13176): at java.lang.Thread.run(Thread.java:856)
07-31 09:58:43.963: I/endeffect(13176): AbsListView.onMeasure(), getWidth()=1080,

最佳答案

使用链接

String link = "http://localhost/login.php?username="
+username+"&password="+password;

在 php 中写入插入或任何查询,然后通过在链接中传递变量将数据发送到 php(提示)使用 AsyncTask 从 android 发送数据

关于php - 如何从 Android 传递变量以供 PHP 文件读取,然后 PHP 文件读取 MYSQL 数据库并返回其他数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17977412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com