Php 如何从MySQL数据库中检索特定的用户数据并在listview中显示?

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

我正在开发Android应用程序,这是食堂自动化系统。我想显示用户下的所有订单,以及我存储在订单表中的订单。现在的问题是,我不知道如何从MySQL检索数据并在列表视图中显示特定用户订单历史数据

这是我最后一年的项目

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 = ?