Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
PeterBox
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 8
#1

использование JSON и PHP - Программирование Android

17.07.2013, 19:58. Просмотров 2481. Ответов 2
Метки нет (Все метки)

Разбираюсь с использованием в приложении баз данных с помощью JSON и PHP. В данной области - новичек. Требуется прочитать данные с MySQL, обработать их и вернуть на сервер новые или измененные данные. Нашел пример http://www.androidhive.info/2012/05/...ith-php-mysql/. Если кратко, то его суть сводится к тому, что в activity формируется массив параметр/значение, передается в PHP, в котором уже формируется запрос к MySQL и который может вернуть другой массив параметр/значение для дальнейшей работы activity. Пример заработал, начал решать свою задачу и уперся во внесение изменений, после редактирования одновременно нескольких таблиц сразу. Вопрос: как передать в PHP сразу всю необходимую информацию, т.е. по родительской и дочерним таблицам одним вызовом? Может концептуально меня не туда занесло?
Так в примере формируются и передаются в PHP параметры для одной записи:
Java
1
2
3
4
5
6
7
8
9
10
           // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair(TAG_PID, pid));
            params.add(new BasicNameValuePair(TAG_NAME, name));
            params.add(new BasicNameValuePair(TAG_PRICE, price));
            params.add(new BasicNameValuePair(TAG_DESCRIPTION, description));
         // sending modified data through http request
            // Notice that update product url accepts POST method
            JSONObject json = jsonParser.makeHttpRequest(url_update_product,
                    "POST", params);
Как правильно в этот массив params записать информацию по записи из родительской таблицы, нескольким записям дочерней, и дать это понять PHP?
принимающий скрипт:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
 
/*
 * Following code will update a product information
 * A product is identified by product id (pid)
 */
 
// array for JSON response
$response = array();
 
// check for required fields
if (isset($_POST['pid']) && isset($_POST['name']) && isset($_POST['price']) && isset($_POST['description'])) {
 
    $pid = $_POST['pid'];
    $name = $_POST['name'];
    $price = $_POST['price'];
    $description = $_POST['description'];
 
    // include db connect class
    require_once __DIR__ . '/db_connect.php';
 
    // connecting to db
    $db = new DB_CONNECT();
 
    // mysql update row with matched pid
    $result = mysql_query("UPDATE products SET name = '$name', price = '$price', description = '$description' WHERE pid = $pid");
 
    // check if row inserted or not
    if ($result) {
        // successfully updated
        $response["success"] = 1;
        $response["message"] = "Product successfully updated.";
 
        // echoing JSON response
        echo json_encode($response);
    } else {
 
    }
} else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";
 
    // echoing JSON response
    echo json_encode($response);
}
?>

Может где-то уже было, не нашел. Направьте, пожалуйста, в нужном направлении.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2013, 19:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос использование JSON и PHP (Программирование Android):

Функция возврата JSON PHP - Программирование Android
Всем привет! У меня проблема с функцией на сервере,не могу понять почему не возвращает значение в Android,помогите пожалуйста. Вот...

Как встретить JSON из Android на сервере с PHP? - Программирование Android
Привет, форумчане! Не могу понять как организовать встречу JSON на серваке с php, который приходит от Android приложения. Вот реализация...

Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject - Программирование Android
Здравствуйте! Есть база данных bd.json, которая находится в проекте в папке assets. Вот содержимое базы данных; { &quot;name&quot;:...

Использование JSON в PHP - PHP
Всем привет. Есть json-массив, содержащийся в переменной $json ...

PHP json_decode (json или не json) - PHP
Третий день ломаю голову над вопросом: API вконтакте возвращает массив в json (как я полагаю) - вроде похоже на json Вот строка: ...

Получение JSON и использование в дальнейшем - JavaScript
Объясните пожалуйста. Почему за пределами функции я не могу использовать переменную полученную через JSON?? Так консоль выводит нужное...

2
Wenceslaus
Android Developer
130 / 130 / 4
Регистрация: 05.07.2013
Сообщений: 205
18.07.2013, 11:16 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от PeterBox Посмотреть сообщение
List<NameValuePair> params = new ArrayList<NameValuePair>();
Это хорошо ровно до тех пор, пока вы передаёте небольшое количество данных. Когда данных много, лучше строить "общение" сервера и клиента через json'ы. Для Android есть библиотека, которая преобразовывает модели данных (тут могут быть просто поля, массивы, массивы других моделей) в json строку.
Java
1
String json = new Gson().toJson(dataModel);
Передавать на сервер тоже не сложно:
Java
1
2
3
4
HttpPost httpPost = new HttpPost(url);
HttpEntity entity = new StringEntity(json, HTTP.UTF_8);
httpPost.addHeader("Content-type", "application/json");
httpPost.setEntity(entity);
Принимать данные (json) с сервера можно тоже через Gson:
Java
1
DataModel model = (DataModel) new Gson().fromJson(jsonResponse, DataModel.class);
Теперь что касается сервера:
PHP
1
2
$input = json_decode(file_get_contents('php://input'), true); //принимаем json
var_dump($input); //преобразовываем в массив данных (если нужно)
Остаётся данные из ассоциативного $input сохранить в базе.

Если вкратце, то всё.
3
PeterBox
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 8
18.07.2013, 12:02  [ТС] #3
Спасибо, буду разбираться.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2013, 12:02
Привет! Вот еще темы с ответами:

Php!? Передача json в php - PHP
почему такой код не срабатывает: &lt;?php include(&quot;includer.php&quot;); $razdel = json_decode($_POST); print_r($razdel); ...

Ошибка при обработке Json - Cannot deserialize the current JSON array because the type requires a JSON object - C#
Всем привет! Помогите, плиз, разобраться с ошибкой: An unhandled exception of type 'Newtonsoft.Json.JsonSerializationException'...

PHP скрипт -> Json -> выбор пользователя -> AJAX -> первоначальный PHP скрипт - PHP
Доброго времени суток! Я новичек вэб программировании, так что прошу строго не судить(в гугле ответа не нашел). Есть задача: ...

Использование DAL, BLL и JSON (Проект новостного портала) - C# MVC
Надо написать проект новостного портала. Вместо БД используется JSON. Всё должно быть по фэн-шую: т.е. UI реализовано на MVC, а вся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru