@saliev93

Как вытащить данные из БД с помощью json?

Вот кусок кода отвечающий за получение данных по выбранному id из БД
class GetProgramDetails extends AsyncTask<String, String, String> {
 
        /**
         * Перед началом показать в фоновом потоке прогресс диалог
         **/
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(EditProgramActivity.this);
            pDialog.setMessage("Loading program details. Please wait...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }
 
        /**
         * Получение детальной информации о продукте в фоновом режиме
         **/
        protected String doInBackground(String... params) {
 
            // обновляем UI форму
        	runOnUiThread(new Runnable() {
        		public void run(){
        	
                   // проверяем статус success тега
                    int success;
                    try {
                        // Список параметров
                        List<NameValuePair> assisstent = new ArrayList<NameValuePair>();
                        assisstent.add(new BasicNameValuePair("id_program", id_program));
 
                        // получаем продукт по HTTP запросу
                        JSONObject json = jsonParser.makeHttpRequest(url_program_details, "GET", assisstent);
 
                        Log.d("Single Program Details", json.toString());
 
                        success = json.getInt(TAG_SUCCESS);
                        if (success == 1) {
                            // Успешно получинна детальная информация о продукте
                            JSONArray programObj = json.getJSONArray(TAG_PROGRAM);
 
                            // получаем первый обьект с JSON Array
                            JSONObject program = programObj.getJSONObject(0);
 
                            // продукт с pid найден
                            // Edit Text
                            txtDay = (EditText) findViewById(R.id.inputDay);
                            txtType = (EditText) findViewById(R.id.inputType);
                            txtList = (EditText) findViewById(R.id.inputList);
 
                            // покаываем данные о продукте в EditText
                            txtDay.setText(program.getString(TAG_DAY_OF_WEEK));
                            txtType.setText(program.getString(TAG_TYPE));
                            txtList.setText(program.getString(TAG_LIST));
 
                        }else{
                            // продукт с pid не найден
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
        		}
        	});
        
            return null;
        }
 
        /**
         * После завершения фоновой задачи закрываем диалог прогресс
         **/
        protected void onPostExecute(String file_url) {
            // закрываем диалог прогресс
            pDialog.dismiss();
        }
    }

Вот пхп который за это отвечает на сервере:
<?php

$response = array();

$DB_USER = "xxx"; // db user
$DB_PASSWORD = "xxx"; // db password 
$DB_DATABASE = "xxx"; // database name
$DB_SERVER = "xxx"; // db server

$con = mysql_connect("$DB_SERVER", "$DB_USER", "$DB_PASSWORD") or die(mysql_error());

if (isset($_GET["id_program"])) {
    $id_program = $_GET['id_program'];
 
    $result = mysql_query("SELECT * FROM program WHERE id_program = $id_program");
 
    if (!empty($result)) {
        if (mysql_num_rows($result) > 0) {
            
            $result = mysql_fetch_array($result);
 
            $program = array();
           
            $program["id_program"] = $result["id_program"];
            $program["day_of_week"] = $result["day_of_week"];
            $program["type"] = $result["type"];
            $program["list"] = $result["list"];

            $response["success"] = 1;
 
            $response["program"] = array();
 
            array_push($response["program"], $program);
             
            echo json_encode($response);
        } else {
            $response["success"] = 0;
            $response["message"] = "No product found";
 
            echo json_encode($response);
        }
    } else {
        $response["success"] = 0;
        $response["message"] = "No product found";
 
        echo json_encode($response);
    }
} else {
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";
 
    echo json_encode($response);
}
?>

Сервер возвращает ответ - No product found. success:0 в чем проблема?
  • Вопрос задан
  • 3227 просмотров
Пригласить эксперта
Ответы на вопрос 1
@RadarWeb
А id_programm что из себя представляет?
Может так лучше:
$result = mysql_query("SELECT * FROM `program` WHERE `id_program` = '" . $id_program . "'");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы