Php 如何从MySQL数据库中检索特定的用户数据并在listview中显示?
我正在开发Android应用程序,这是食堂自动化系统。我想显示用户下的所有订单,以及我存储在订单表中的订单。现在的问题是,我不知道如何从MySQL检索数据并在列表视图中显示特定用户订单历史数据 这是我最后一年的项目Php 如何从MySQL数据库中检索特定的用户数据并在listview中显示?,php,android,mysql,Php,Android,Mysql,我正在开发Android应用程序,这是食堂自动化系统。我想显示用户下的所有订单,以及我存储在订单表中的订单。现在的问题是,我不知道如何从MySQL检索数据并在列表视图中显示特定用户订单历史数据 这是我最后一年的项目 import android.app.ProgressDialog; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.AppCompat
import android.app.ProgressDialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class OrderScreen extends AppCompatActivity implements View.OnClickListener {
private EditText editTextId;
private Button buttonGet;
private TextView textViewResult;
private ProgressDialog loading;
String result = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order_screen);
SharedPreferences sp = getSharedPreferences("login", 0);
String user_id = sp.getString("userid", null);
editTextId = (EditText) findViewById(R.id.editTextId);
editTextId.setText(user_id);
buttonGet = (Button) findViewById(R.id.buttonGet);
buttonGet.setOnClickListener(this);
}
List<Map<String, String>> countryList = new ArrayList<Map<String, String>>();
private void getData() {
String id = editTextId.getText().toString().trim();
if (id.equals("")) {
Toast.makeText(this, "Please enter an id", Toast.LENGTH_LONG).show();
return;
}
loading = ProgressDialog.show(this, "Please wait...", "Fetching...", false, false);
String url = Config.DATA_URL + editTextId.getText().toString().trim();
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(OrderScreen.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSON(String response) {
String name = "";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
for(int i=0; i<result.length(); i++) {
JSONObject collegeData = result.getJSONObject(i);
String[] values = new String[]{collegeData.getString(Config.KEY_NAME)};
// address = collegeData.getString(Config.KEY_ADDRESS);
// vc = collegeData.getString(Config.KEY_VC);
ListView listView = (ListView) findViewById(R.id.listview);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
listView.setAdapter(adapter);
}
}
catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onClick(View v) {
getData();
}
}
导入android.app.ProgressDialog;
导入android.content.SharedReferences;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.StringRequest;
导入com.android.volley.toolbox.volley;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Map;
公共类OrderScreen扩展AppCompatActivity实现View.OnClickListener{
私有EditText-editTextId;
私人按钮按钮;
私有文本视图文本视图结果;
私有对话框加载;
字符串结果=null;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u order\u屏幕);
SharedReferences sp=getSharedReferences(“登录”,0);
字符串user_id=sp.getString(“userid”,null);
editTextId=(EditText)findViewById(R.id.editTextId);
editTextId.setText(用户id);
buttonGet=(按钮)findViewById(R.id.buttonGet);
setOnClickListener(这个);
}
List countryList=new ArrayList();
私有void getData(){
字符串id=editTextId.getText().toString().trim();
if(id.equals(“”){
Toast.makeText(这是“请输入id”,Toast.LENGTH_LONG.show();
返回;
}
loading=ProgressDialog.show(这是“请稍候…”、“正在获取…”、false、false);
String url=Config.DATA_url+editTextId.getText().toString().trim();
StringRequest StringRequest=新的StringRequest(url,new Response.Listener()){
@凌驾
公共void onResponse(字符串响应){
loading.dispose();
showJSON(响应);
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Toast.makeText(OrderScreen.this,error.getMessage().toString(),Toast.LENGTH\u LONG.show();
}
});
RequestQueue RequestQueue=Volley.newRequestQueue(this);
添加(stringRequest);
}
私有void showJSON(字符串响应){
字符串名称=”;
试一试{
JSONObject JSONObject=新JSONObject(响应);
JSONArray result=jsonObject.getJSONArray(Config.JSON_数组);
对于(int i=0;i),您需要在PHP中编写后端API。请考虑以下内容:
- Android应用程序需要向该系统发送HTTP消息来读取或写入数据
- 来自应用程序的每条消息必须包含凭据,以证明应用程序有权读取或写入数据
- 如果安全性对您很重要,那么API应该通过HTTPS运行,这样第三方就更难截获凭据
- API通常使用JSON进行数据输入和输出,但XML也可以
- 如果要读取用户下的订单,则可以使用以下格式:
GET /orders?user=<user>&password=<password>
我在这里暗示了一个四表数据库,上面的三项形成了多对多关系
您是否使用任何后端技术将数据从MySQL数据库获取到您的android应用程序?话虽如此,您是否使用任何web Api从服务器(即MySQL数据库)获取数据?我需要一个关于db和Api调用的简要说明。这里我提供了示例链接供您参考1.2。嗨,satish,我使用的是php json…我是sorry我无法解释太多,因为我对这个android程序非常陌生谢谢你siva…我看到了你的参考链接..我已经用我的sql完成了连接..nw我必须在他的订单历史表中检索特定的用户订单数据…但我不知道如何才能做到这一点(除此之外,要联系这里的人,请使用他们的@handle,例如@SatishSaini
或@siva
,否则他们可能看不到您的消息)。您好,请提供上面的示例代码solution@Urvashi:不,这不是社区的工作方式。您不需要“示例代码”,你希望我为你做所有的事情。期望人们为你做那么多的工作是不公平的,但由于这是一个学术项目,它需要主要是你自己的工作。我把它分解的目的是为你建议一个任务的顺序。我希望我在做本科生时有这样的帮助来源20年前!首先,编写一个小PHP程序,输出一段固定的JSON,如下所示:现在我已经从列表视图中的订单表中获取了数据,但现在的问题是,它正在检索我放置的最后一个订单数据,但我希望列表视图中的整个订单数据^code在注释@Urvashi中的格式不好-如果您愿意的话若要显示代码,请使用将其添加到您的问题中。无论如何,该问题目前过于宽泛,因此,如果您能更多地了解您目前的困境,这将对读者非常有帮助。谢谢。
SELECT * FROM order
INNER JOIN food_item_order ON (order.id = food_item_order.order_id)
INNER JOIN food_item ON (food_item_order.food_item_id = food_item.id)
WHERE order.user_id = ?