У меня есть просмотрщик, который показывает мои значения для пользователей. Но мне нужно показать им свои ценности.
Сначала это код для значений GET. (Работает отлично)
private void loadValues() {
StringRequest stringRequest=new StringRequest(Request.Method.GET, urlUpload, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray values =new JSONArray(response);
for (int i = 0; i < values.length(); i++) {
JSONObject object=values.getJSONObject(i);
int id =object.getInt("id");
int user_id=object.getInt("user_id");
String department=object.getString("department");
String description=object.getString("description");
String address=object.getString("address");
String addressdesc=object.getString("addressdesc");
String lattitude=object.getString("lattitude");
String longitude=object.getString("longitude");
String image=object.getString("image");
String state=object.getString("state");
Modelmodel=new Model(id,user_id,department,description,address,addressdesc,lattitude,longitude,image,state);
recyclerList.add(model);
}
adapter=new Adapter(UserRecords.this,recyclerList);
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(UserRecords.this, error.getMessage(), Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String,String> params =new HashMap<>();
params.put("user_id","4"); // 4 is just for now. it should return 3 values from sql.
return params;
}
} ;
Volley.newRequestQueue(this).add(stringRequest);
}
И это мой PHP-скрипт для GET. И это тоже прекрасно работает. Когда я пытаюсь $user_id2 =4;
он возвращает мне значения.
<?php
// $user_id2 = $_POST['user_id'];
require_once 'connect.php';
mysqli_query($conn,"SET NAMES 'utf8'");
//Checking if any error occured while connecting
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
die();
}
//creating a query
$stmt = $conn->prepare("SELECT records.id, records.user_id, parameters.p_name AS department, records.description,
records.address, records.addressdesc, records.lattitude, records.longitude, records.image, records.state
from records,parameters WHERE parameters.p_id=records.department AND parameters.group_id=
(SELECT groups.id FROM groups where groups.group_name = 'department') AND records.user_id = '$user_id2'");
//executing the query
$stmt->execute();
//binding results to the query
$stmt->bind_result($id,$user_id,$department,$description,$address,$addressdesc,
$lattitude,$longitude,$image,$state);
$records = array();
//traversing through all the result
while($stmt->fetch()){
$temp = array();
$temp['id'] = $id;
$temp['user_id'] = $user_id;
$temp['department'] = $department;
$temp['description'] = $description;
$temp['address'] = $address;
$temp['addressdesc'] = $addressdesc;
$temp['lattitude'] = $lattitude;
$temp['longitude'] = $longitude;
$temp['image'] = $image;
$temp['state'] = $state;
array_push($records, $temp);
}
//displaying the result in json format
echo json_encode($records);
Я сделал POST-запрос перед GET-запросом на Android, но он не работал.
Если вы посмотрите конец моего кода SQL, вы увидите records.user_id = '$user_id2'
. Мне нужно получить значение user_id2 с помощью запроса POST, затем мне нужно передать это значение в SQL. Затем я сделаю запрос get, и он покажет собственные ценности людей в обзоре переработчиков.
Вкратце: мне нужно отправить сообщение user_id в PHP, затем использовать его в SQL, а затем вернуть значения методом get в Android.