Android Модифицированные данные выборки на основе ввода пользователя - PullRequest
0 голосов
/ 28 апреля 2020

Этот сценарий включает передачу строковых данных от одного действия к другому. Я хочу использовать эту переменную (useremail) для выбора данных в базе данных mysql. Данные ничего не возвращают с сервера. Я пытаюсь сделать это с помощью модернизации. Где я могу ошибаться?

ИНТЕРФЕЙС API

public interface ApiInterface2 {
    String BASE_URL = "10.0.2.2/uploadmultiple/";
    @POST("mylist.php")
    Call<List<ImageList>> getImgData(@Query("useremail") String userEmail);}

ГЛАВНЫЙ КЛАСС

  Call<List<ImageList>> call = apiInterface.getImgData(userEmail);
        call.enqueue(new Callback<List<ImageList>>() {
            @Override
            public void onResponse(Call<List<ImageList>> call, Response<List<ImageList>> response) {
                if (response.isSuccessful()) {
                    if (response.body() != null) {

                        imageLists = response.body();
                        adapter = new ListingsAdapter(imageLists, MyListings.this);
           ////////
 });
<?php

include 'dbconfig.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

    $useremail = $_POST["useremail"];

    if(empty($useremail)){echo "UserEmail is null";}

try {

    $email = $_REQUEST["useremail"];
    // Create connection
    $conn = new PDO("mysql:host=$HostName;dbname=$DatabaseName", $HostUser, $HostPass);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


    $stmt = $conn->prepare("SELECT * FROM `tabe1` WHERE `useremail` = $email"); 

    $stmt->execute();

    $data=array();
    while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
        $data[] = $row; 
    }
    header('Content-Type:Application/json');
    echo json_encode($data);
    }
    catch (PDOException $e) {
    print "Connection failed! Please Try Again Or Contact Us: " . $e->getMessage() . "<br/>";
    die();
    $conn = null;
    }
    }

?>

Ответы [ 2 ]

0 голосов
/ 28 апреля 2020

Это было наконец решено путем хорошей обработки стороны API. Спасибо всем респондентам.

ИНТЕРФЕЙС API

public interface ApiInterface2 {
    String BASE_URL = "10.0.2.2/uploadmultiple/";
    @POST("mylist.php")
    Call<List<ImageList>> getImgData(@Query("useremail") String userEmail);}

ГЛАВНЫЙ КЛАСС

  Call<List<ImageList>> call = apiInterface.getImgData(userEmail);
        call.enqueue(new Callback<List<ImageList>>() {
            @Override
            public void onResponse(Call<List<ImageList>> call, Response<List<ImageList>> response) {
                if (response.isSuccessful()) {
                    if (response.body() != null) {

                        imageLists = response.body();
                        adapter = new ListingsAdapter(imageLists, MyListings.this);
           ////////
 });
<?php


    if ($_SERVER['REQUEST_METHOD'] == 'POST') 
    try{ 

    $useremail = $_REQUEST["useremail"];
    include 'dbconfig.php';

    $conn = new PDO("mysql:host=$HostName;dbname=$DatabaseName", $HostUser, $HostPass);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


    $stmt = $conn->prepare("SELECT * FROM `table1` WHERE `useremail` = '$useremail'"); 
    $stmt->execute();

    $data=array();
    while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
        $data[] = $row; 
    }
    header('Content-Type:Application/json');
    echo json_encode($data);
    }
    catch (PDOException $e) {
    print "Connection failed! Please Try Again Or Contact Us: " . $e->getMessage() . "<br/>";

    die();
    $conn = null;
}
0 голосов
/ 28 апреля 2020

Я думаю, что так и должно быть, BASE_URL должен содержать URL только в модернизации , а не в пути.

String BASE_URL = "10.0.2.2/";
@POST("uploadmultiple /mylist.php")

Это должно помочь вам.

...