android залп отправь и получи за один запрос - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть запрос к базе данных mysql, он запрашивает все избранные курсы, но сначала мне нужно передать ему пользователя. Как я могу это сделать?

файл java:

public class FavoritosFragment extends Fragment {
    RecyclerView recyclerView;
    MyFavoritosRecyclerViewAdapter AdapterFavoritos;
    List<Cursos>cursosList;

    RequestQueue  requestQueue;

    // TODO: Customize parameters
    private int mColumnCount = 1;

    private OnListFragmentInteractionListener mListener;


    public FavoritosFragment() {
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_favoritos_list, container, false);



        // Set the adapter
        if (view instanceof RecyclerView) {
            Context context = view.getContext();
          recyclerView = (RecyclerView) view;
            if (mColumnCount <= 1) {
                recyclerView.setLayoutManager(new LinearLayoutManager(context));
            } else {
                recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount));
            }


            cursosList=new ArrayList<>();
            ejecutarServicio();

            obtenerCursos();

            //asociamos el adaptador al recyclerview
            AdapterFavoritos=new MyFavoritosRecyclerViewAdapter(cursosList, mListener);
            recyclerView.setAdapter(AdapterFavoritos);

        }
        return view;
    }
    private void ejecutarServicio() {

        StringRequest stringRequest = new StringRequest(Request.Method.POST, getResources().getString(R.string.URL_favo) , new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {


            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getActivity(), "Error de registro!"+error.toString(), Toast.LENGTH_SHORT).show();


            }
        }) {
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                final String usuario = "avo";
                params.put("usu_usuario",usuario);
                return params;
            }
        };
        RequestQueue requestQueue= Volley.newRequestQueue(getActivity().getApplicationContext());
        requestQueue.add(stringRequest);

    }


    public void obtenerCursos() {

        RequestQueue requestQueue = Volley.newRequestQueue(getActivity().getApplicationContext());

        StringRequest stringRequest = new StringRequest(Request.Method.POST, getResources().getString(R.string.URL_favo),
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        try {
                            JSONObject jsonObject = new JSONObject(response);
                            JSONArray jsonArray = jsonObject.getJSONArray("Curso");

                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                                boolean add = cursosList.add(
                                        new Cursos(
                                                jsonObject1.getString("id_curso"),
                                                jsonObject1.getString("titulo"),
                                                jsonObject1.getString("descripcion"),
                                                jsonObject1.getString("categoria"),
                                                jsonObject1.getString("imagen")

                                        )
                                );
                            }

                            AdapterFavoritos=new MyFavoritosRecyclerViewAdapter(cursosList, mListener);
                            recyclerView.setAdapter(AdapterFavoritos);


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

                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }

        }

        );
        requestQueue.add(stringRequest);
    }



    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        if (context instanceof OnListFragmentInteractionListener) {
            mListener = (OnListFragmentInteractionListener) context;
        } else {
            throw new RuntimeException(context.toString()
                    + " must implement OnListFragmentInteractionListener");
        }
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null;
    }


    public interface OnListFragmentInteractionListener {
        // TODO: Update argument type and name
        void onListFragmentInteraction(Cursos item);
    }
}

это мой php файл.

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
  include 'conexion.php';

$usu_usuario=$_POST['usu_usuario'];


$miDato='';

$consultado="SELECT id_usuario FROM usuario WHERE usu_usuario='".$usu_usuario."'"; 
$result=mysqli_query($conexion,$consultado);

while($mostrar=mysqli_fetch_array($result)){

  $miDato= $mostrar['id_usuario'];


    }
//  echo $miDato;





  $consulta = " SELECT * FROM curso RIGHT JOIN favoritos ON curso.id_curso=favoritos.id_curso WHERE favoritos.id_usuario='".$miDato."'";

   $resultado=$conexion->query($consulta);

    $datos = array();

    while($resultados = $resultado->fetch_assoc()) {
        $datos[] = $resultados;
    }

    //echo json_encode($datos);
    echo json_encode(array("Curso" => $datos));

mysqli_query($conexion,$consulta) or die (mysqli_error());
mysqli_close($conexion);
?>

вот мои два файла java и php к запросу базы данных .. Я в отчаянии, вы знаете, как злитесь, когда код не понимает меня хахаха;)

вот мои два файла java и php к запросу к базе данных .. Я в отчаянии, вы знаете, как злитесь, когда код не понимает меня, хахаха;)

что я хочу, это отправить пользователя на запрос, и залп возвращает результат, я знаю как это сделать отдельно, но я не понимаю, как это сделать в одном запросе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...