как посмотреть результат php скрипта на андроиде - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу получить результат PHP-скрипта для отображения на Android Textview с помощью модификации. Мне удалось отправить данные в виде текста редактирования в базу данных, выполнив что-то вроде этого

Это для метода post

InstituteService instituteService = ApiClient.getApiClient(getApplicationContext()).create(InstituteService.class);
            Call<ServiceResponse> calRegStudent = instituteService.UploadStudentsRecord(Surname,Firstname,Othername,Address,Age,Sex,Parentemail,Sclass,Regno,Tagno,Rollcallno,L_Finger1,L_Finger2,R_Finger1,R_Finger2,District_code,Zone_code,School_code);
            calRegStudent.enqueue(new Callback<ServiceResponse>() {
                @Override
                public void onResponse(Call<ServiceResponse> call, Response<ServiceResponse> response) {
                    if(response.body() != null)
                    {
                        ServiceResponse rr= response.body();
                        if(rr.getStatus().contentEquals("1"))
                        {
                            Toast.makeText(MainActivity.this,"Data Submit Successfully", Toast.LENGTH_LONG).show();

                            ClearEditTextAfterDoneTask();
                        }
                        else
                        {
                            Toast.makeText(MainActivity.this,"Error", Toast.LENGTH_LONG).show();


                        }

Код для метода получения

InstituteService instituteService = ApiClient.getApiClient(getApplicationContext()).create(InstituteService.class);
                    Call<ServiceResponse> calRegStudent = instituteService.StudentGetRecord(Parentemail);
                    calRegStudent.enqueue(new Callback<ServiceResponse>() {
                        @Override
                        public void onResponse(Call<ServiceResponse> call, Response<ServiceResponse> response) {
                            if(response.body() != null)
                            {
                                ServiceResponse rr= response.body();
                                if(rr.getStatus().contentEquals("1"))
                                {
                                    Toast.makeText(MainActivity.this,"Successfully", Toast.LENGTH_LONG).show();

                                    ClearEditTextAfterDoneTask();
                                }
                                else
                                {
                                    Toast.makeText(MainActivity.this,"Error", Toast.LENGTH_LONG).show();


                                }

Я могу только отправить поле, необходимое для выполнения запроса, но я не знаю, как отобразить результат.

Это PHP-скрипт метода get, над которым я работаю

<?php

//Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
//Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$parentemail=htmlspecialchars( $_GET["parentemail"]);
$sql = "SELECT surname,firstname,othername,rollcallno FROM studentTable WHERE parentemail='$parentemail';";
$result = mysqli_query($conn, $sql);

if (mysqli_query($conn, $sql)) {
    echo(json_encode(array('Message'=>"New record created successfully",'Status'=>1)));
    //echo "New record created successfully";
} else {
    echo(json_encode(array('Message'=>mysql_error($conn),'Status'=>0)));
    //echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

Это InstituteService

    package com.ainakay.studentapp;

import java.util.List;

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;

public interface InstituteService {
@FormUrlEncoded
    @POST("insertin.php")
    Call<ServiceResponse> UploadStudentsRecord(@Field("surname") String surname,@Field("firstname") String firstname,
                                       @Field("othername") String othername,@Field("address") String address,
                                       @Field("age") String age,@Field("sex") String sex,@Field("parentemail") String parentemail,
                                       @Field("sclass") String sclass,@Field("regno") String regno,
                                       @Field("tagno") String tagno,@Field("rollcallno") String rollcallno,
                                       @Field("l_Finger1") String l_Finger1,@Field("l_Finger2") String l_Finger2,
                                       @Field("r_Finger1") String r_Finger1,@Field("r_Finger2") String r_Finger2,
                                       @Field("district_code") String district_code,@Field("zone_code") String zone_code,@Field("school_code") String school_code);
@FormUrlEncoded
    @GET("parentgetstudent.php")
    Call<ServiceResponse> StudentGetRecord(@Field("parentemail")String parentemail);


}

Пожалуйста, я новичок в разработке для Android, оценю любую помощь

1 Ответ

0 голосов
/ 19 сентября 2018

Во-первых, для серверной части вы должны вернуть все поля, которые необходимо отобразить в Android:

$result = mysqli_query($conn, $sql);
if ($result) {
    $row = mysqli_fetch_assoc($result);
    echo(json_encode(array(
      'Message' => "OK",
      'Status' => 1,
      'Surname' => $row['surname'], 
      'Firstname' => $row['firstname'], 
      'Othername' => $row['othername']
      // Rest of the fields
    )));
} else {
    echo(json_encode(array('Message' => mysql_error($conn), 'Status' => 0)));
}

А для клиентской части:

ServiceResponse rr = response.body();
if (rr.getStatus().contentEquals("1"))
{
    Toast.makeText(MainActivity.this, "Successfully", Toast.LENGTH_LONG).show();
    txtSurname.setText(rr.getSurname());
    txtFirstname.setText(rr.getFirstname());
    // Rest of the fields
}
else
{
    Toast.makeText(MainActivity.this,"Error", Toast.LENGTH_LONG).show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...