Компьютерапия

    • Офис
      • MS Excel
      • MS Word
      • MS PowerPoint
      • MS Access
    • Веб
      • Joomla
      • WordPress
      • Сайтостроение
      • Уроки HTML
      • Bootstrap 3
      • Web Разработка
      • Web Сервисы и Службы
      • Основы AJAX
      • Изучаем AngularJS
      • Основы CSS
    • Программер
      • Android
      • VBA
      • Основы php
      • JavaScript
      • Основы Arduino
    • Полезные книги
      • Android
      • Assembler
      • Excel
      • linux
      • CSS
      • Delphi
      • Java
      • JavaScript
      • Joomla
      • Web
      • PHP
      • Unity
    • Полезные советы
      • Установки на Virtualbox
      • Продвижение YouTube канала
      • Как заказывать товары на AliExpress
    • Видео уроки
      • Уроки Word
      • Уроки Excel
      • Уроки сайтостроения
      • Уроки Joomla 3
      • Уроки Android
      • Уроки WordPress
      • Полезные советы
      • Уроки PowerPoint
      • Основы Arduino
      • Основы MacOS
      • Основы Vbox
      • Основы Python
    • Блог
    Android
    21 февраля 2021
    11 апреля 2026
    Просмотров: 7434

    Android Studio: получение JSON из базы данных с помощью PHP. Урок № 4

    Всем привет, и это уже четвертая статья, посвященная работе в Android Studio при создании приложений с использованием JSON.

    Сегодня мы опять будем работать с сетевыми подключениями, но на данном этапе я буду использовать OpenServer, localhost и покажу как работает подключение к базе данных на хостинге, теперь у нас не просто файл лежит, а информация из базы данных.

    Android Studio получение JSON из базы данных с помощью PHP Урок № 4


    Android Studio получение JSON из базы данных с помощью PHP Урок № 4


    Android Studio получение JSON из базы данных с помощью PHP Урок № 4


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

    На localhost была создана база данных user_info с таблицей users, в которой содержатся всё те же наши пользователи, добавлена колонка info, чуть позже будем ее использовать.

    Пока в адресной строке мы обратимся домену, то ничего не происходит. Теперь наша задача вывести данные, так же, как мы получали с хостинга.

    Сразу хочу напомнить, что получать значение будем UTF-8, и поскольку у нас в базе данных в структуре текст уже в кодировке utf8, таблица дает правильные данные, поэтому перед началом написания, а вы будете использовать пример из-за третьего урока, или третьего видео, функцию EncodingToUTF8 нужно будет убрать.

    Потому что иначе у вас ничего водиться не будет. Напишем несколько PHP скриптов, я создам ещё одну папку для файла конфигурации нашей базы данных.

    Создаем текстовой файл, с названием config.php, и откроем его в редакторе.

    Давайте ещё добавил здесь на этом уровне один файл, создать- текстовый файл info.php, и тоже откроем его.

    По сути создание файлов закончено, поработаем с PHP и немного с Android Studio.

    Давайте начнем, поскольку мы работаем с localhost все обращения к базе данных у нас будут без паролей, мы объявляем define константу DB_SERVER со значением localhost, наш сервер, далее укажем базу данных DB_DATABASE, если вас реально хостинг имя базы данных может отличаться, в моем примере user_info.

    
    define('DB_SERVER', "localhost"); // сервер
    define('DB_DATABASE', "user_info"); // база данных
    

    На localhost DB_USER почти всегда равен root, в вашем случае на хостинге укажите логин, который вы получаете от вашего хостера.

    define('DB_USER', "root"); //логин админа БД

    Здесь DB_PASSWORD пароль на localhost, чаще всего он пустой, на хостинге указываете свой.

    define('DB_PASSWORD', ""); // пароль админа

    Далее объявляем переменную $con - сокращённо от connaction, и далее вызываем mysqli_connect, делаем соединение, тут я не делаю никаких проверок на ошибки, будем считать, что у нас всё правильно, как бы хотите заморачиваться – пишите.

    Пока я показываю простой пример, обратите внимание если версия PHP старше 5.4 то используйте mysqli_ , в устаревшей версии до 5.4 там указывалось mysql_, без буквы i, в этом подключение перечислены сервер, база данных, пользователь, пароль.

    $con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

    И ещё одна строчка, мы укажем, что у нас подключение будет работать в utf-8.

    mysqli_query($con, "set names utf8");

    Закройте скобки, если хотите закрывайте, config.php мы сделали.

    Теперь мы перейдём в файл info.php, можете спорить, писать в комментариях, что лучше использовать require_once, я оставлю так.

    Подключаем файл конфигурации

    require 'db/config.php';

    в переменную $sql_query помещаем sql-запрос, который выведет все данные из таблицы users

    $sql_query = "SELECT * FROM `users`";

    Далее в переменную $r - результат запрос помещаем с учетом нашего соединения

    $r = mysqli_query($con, $sql_query);

    после объявляем массив $data = array();

    И в такой цикле с условием пробегаемся по записям, если записи есть, ведется подсчет количества строк, то в цикле while мы заполняем переменную $row из $r в виде ассоциативного массива и передадим в другой массив $data[].

    Теперь мы выведем через echo наши данные,

    echo (json_encode(array("users" => $data),JSON_UNESCAPED_UNICODE));

    обратите внимание здесь я указал имя будущего массива users.

    Передаем данные и константа JSON_UNESCAPED_UNICODE нужна для работой с кириллицей, у нас будет давать правильные результаты, мы всё это получаем в читабельном виде.

    Теперь если мы должны будем обратиться к файлу info.php, откроем домен, в нём есть уже файлы потому что нет файла index, перейдём на него, и получим всех наших пользователей.

    В принципе всё то же самое как у нас было с локальным файлам.

    Значит запомнили, создали базу данных, в ней таблицу, наполнили её данными, данные должны быть в кодировке utf-8, но я вот это использую utf8_general_mysql500_ci, как бы я по привычке ее использую.

    Вот значит у нас ответ есть, теперь по поводу Android Studio. Здесь нам нужно будет указать, так в можно уже блокнот закрывать.

    Дайте я просто покажу, чтобы знали, или вспомнили, если вы используете OpenServer, то вы указываете домен, в котором вы хотите работать в своей локальной сети, указываете ip компьютера.

    Как его определить, через команду cmd, и в ней ipconfig, то есть у вас здесь должен быть локальный адрес вашего компьютера.

    И нужно будет указать в настройках OpenServer адрес и домен, и вместо пути, как их здесь было m1.maxfad.ru/, надо будет указать вот этот адрес.

    Сейчас мы этим займёмся, в принципе здесь изменения у нас будут чисто косметические, пописать немного придется, но уже не так будет много, как в прошлый раз.

    В принципе всё уже готово, значит вот так выглядит теперь мой адрес, у вас это будет ваш ip вместо домена, естественно, если php файлы и база данных у вас на хостинге, укажите свой путь к файлу info.php.

    Значит нам можно будет в MainActivity объявить еще arraylist

    ArrayList<JSONObject> infoList;

    назовем его infoList, в нем будем информацию собирать.

    Значит нам нужно будет вставить в функцию LoadJSONFromURL, вот сюда, после строки

    ArrayList< JSONObject> listItems = getArrayListFromJSONArray(jsonArray);

    напишем infoList равно listItems

    infoList = listItems;

    И мы уже в наш новый массив получили данные, которые будем разбирать в отдельные переменные в другом месте.

    Теперь перейдём в onCreate, под loadJSONFromURL(JSON_URL)

    Нам нужно будет, в onCreate написать обработчик нажатия на пункт нашего списка, который у нас соответственно listView.

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener()

    Сформировался обработчик, теперь объявим здесь переменную типа String nameEx, для экспорта будет, напишем

    String nameEx = infoList.get(position).optString("name");

    В листе определяем нажатую позицию, команда optString вернет значение указанное в скобках.

    Продублируем то же самое для e-mail, пока показываю на простых примерах.

    Теперь давайте вызовем intent

    Intent intent = new Intent(getApplicationContext(),InfoActivity.class);

    intent равно new Intent getapplicationcontext и вот здесь нас пока ждет засада.

    Давайте создадим в проекте новую активность, назовём её InfoActivity, она будет нужна для вывода информации.

    В дизайне activity_info.xml добавим WebView, наши данные, наш текст мы будем выводить всё webview.

    Добавим Android id

    android:id="@+id/webView"

    всё больше мы ничего не делаем.

    Если мы будем использовать здесь TextView, то вряд ли мы сможем, если будет большой какой-то текст растянуть его больше чем на пол экрана.

    Я уже проверял, поэтому можете мне на слово поверить.

    Так значит из MainActivity теперь мы обратимся к нашей InfoActivity.class.

    Теперь мы вызываем intent.putExtra, передача переменной в другую активность или фрагмент через специальное ключ-имя nameEx, и то же самое для почты emailEx.

    intent.putExtra("nameEx",nameEx);
    intent.putExtra("emailEx",emailEx);

    Ну и запуск активности через интент.

    startActivity(intent);

    Так хорошо, давайте кстати проверим вообще работает ли у нас что-либо, не будем делать клик по пунктам.

    Вытяну эмулятор с левого экрана, запусти приложение и посмотрим, что у нас вообще получится.

    Так хорошо, есть, а вот я даже успел по ошибке кликнуть на пункт, чтобы вы убедились, что InfoActivity открывается.

    Чтобы убедиться, что в эмуляторе действительно данные берутся из базы а не из локального json файла, давайте вставим еще одно имя допустим Андрей, email случайный, и нажмем кнопку Вперед.

    В таблице новый пункт, если мы сейчас опять или можете, перезагрузить веб страничку, ещё один пользователь добавился.

    Перезапустим эмулятор, вот у нас ещё один добавился юзер. Так давайте теперь пока уберём эмулятор, работаем в InfoActivity .

    Нужно будет получить данные, которые мы передаем через интент.

    Объявим переменную WebView webview, для работы с нашими данными, мы там будем соединять одно с другим, объявим ещё переменную tmp.

    В onCreate объявим присвоение переменной webview и элемента WebView через findviewbyid

      webView = findViewById(R.id.webView);

    Объявляем опять Intent intent равно getIntent

    Intent intent = getIntent();

    Переменная String для получения переданного значения для name и email через getStringExtra

    String nameEx = intent.getStringExtra("nameEx");
    String emailEx = intent.getStringExtra("emailEx");

    И теперь в переменную tmp мы поместим, давайте так напишем,

    tmp = " Имя: " + nameEx + "< br>< br>" +" Email: " +emailEx + "< br>< br>"’

    И вот у нас получается вот такая конструкция.

    Поместим текст в webview

    webView.loadData(tmp,"text/html; charset=utf-8",null);

    Вот и всё, так запускаем, проверяем.

    У нас в принципе в базе осталось еще одно поле info, мы можем его тоже вывести, давайте заполним его, у нас пять записей, перейдём на сайт fishtext.ru, сформируем пять абзацев для каждого пользователя.

    Пусть это будут тексты, например, характеристика или какая-то информация, для каждого будет своя.

    Допустим этот досье и в принципе можно сделать на основе этого какой-то справочник, допустим медицинский, может быть у вас тут описание.

    Очень удобный этот сайт мне он нравится fishtext.ru, можно случайную информацию сгенерировать для наглядности.

    Если не пытаться читать, то выглядит нормально, когда надо для примера, для чего-то набить.

    Так значит теперь обновим в браузере, у нас добавлялась информация.

    Добавим в MainActivity ещё одну переменную, по сути их две получится, так про дублируем,

    здесь у нас будет инфо

    String infoEx = infoList.get(position).optString("info");

    Передаем и в интент

    intent.putExtra("infoEx",infoEx);

    Нам нужно будет принять info, соответственно в InfoActivity.

    String infoEx = intent.getStringExtra("infoEx");

    И добавим в tmp

    tmp = " Имя: " + nameEx + "< br>< br>" +" Email: " +emailEx + "< br>< br>" + infoEx;

    Запускаем смотрим, так Вася, Коля, null. Почему сейчас разберемся. Опечатка была, вот такое вот досье на каждого пользователя.

    Давайте на Коле проведём испытания, давайте возьмём текст, который у нас здесь, мы же можем его представить в виде HTML, скопируем, оформить наш текст как HTML, с помощью тегов.

    Можем раздробить на параграфы, если мы просто будем ставить разрывы строк через тег br, то не аккуратно получится, а так можно с помощью HTML разметки получше сделать.

    Какой-то текст сделаем жирным, и какое-нибудь слово сделаем с наклоном.

    Внизу сделаем список, через теги ul и li.

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

    Достаточно было в эмуляторе открыть, закрыть, перезапустим, кликнем на первом пользователе, и текст выглядит гораздо лучше.

    Вы можете не просто загнать обычный текст, можете предать ему какой-то оформление на ваше усмотрение.

    Ну вот сейчас уже можно закончить, пишите в комментариях понравилось ли вам видео, ставьте классы пальцы вверх, следующее видео, я думаю мы посвятим работе с фрагментами.

    Сейчас всё крутится в одном так сказать месте, в одной активности со списком, можно будет сделать фрагменты, сделать, например, рубрики, или раздел музыки, допустим жанр, рок, к примеру, будет название может быть группы название, по клику можно вызывать дискографию, допустим вставить сюда картинку, что-нибудь такое ещё сделаем.

    Cкачать архив для ознакомления - Android Studio: получение JSON из базы данных с помощью PHP. Урок № 4:


    ZIP архив с проектом


    Android Studio получение JSON из базы данных с помощью PHP Урок № 4


    Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

     С уважением, авторы сайта Компьютерапия

    Понравилось? Поделись этим видео с друзьями!

    Android Studio получение JSON из базы данных с помощью PHP Урок № 4


    Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на видео ВКонтакте, там Вы найдете много интересного, которое выходит достаточно часто. Приятного просмотра!

     С уважением, авторы сайта Компьютерапия

    Понравилось? Поделись этим видео с друзьями!

    Android Studio получение JSON из базы данных с помощью PHP Урок № 4


    Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в Рутубе, там Вы найдете много интересного, которое выходит достаточно часто. Приятного просмотра!

     С уважением, авторы сайта Компьютерапия

    Понравилось? Поделись этим видео с друзьями!

    Tags: php, android
    Подпишитесь на канал в ВК Видео

    Свежие записи 2025

    ВПР на Python, без Excel 16 мая 2026
    Python 3 на Android. Запускаем Ping 28 марта 2026
    Блютуз подключение в Android (проект для Arduino). Часть 2 18 января 2025
    Анимация в PowerPoint - (видео) 09 января 2025
    Меняем имена в GoPro 10 18 июля 2023
    YouTube все - ютубКапут - (видео) 20 марта 2022
    Как сделать презентацию в PowerPoint, презентация с нуля в Рower Point 2016 20 февраля 2022
    Как изменять текст в word с помощью языка Python в среде PyCharm Меняем параграфы таблицы и шрифты - (видео) 09 февраля 2022
    Как преобразовать doc в docx на языке python в PyCharm Массовая конвертация старых файлов в docx - (видео) 09 февраля 2022
    Как установить blender 3.0? Покажу два способа, как установить блендер версии 3.0 на свой комп! - (видео) 05 февраля 2022

    ТОП-10 статей 2025

    • 15 лучших эффектов переходов между слайдами в Power Point
    • Функции даты-времени в VBA. Работа с датой и временем
    • Добавление номеров страниц в колонтитул в Word
    • Массивы в VBA: как работать с массивами
    • Сортировка и фильтрация записей в Access
    • Форматирование и настройка оглавления в Word
    • Методы PHP GET и POST, переменная $_REQUEST
    • Создание форм в Access
    • Установка Android Studio, настройка SDK
    • Работа со строками в VBA: InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse
    • Офис
      • MS Excel
      • MS Word
      • MS PowerPoint
      • MS Access
    • Веб
      • Joomla
      • WordPress
      • Сайтостроение
      • Уроки HTML
      • Bootstrap 3
      • Web Разработка
      • Web Сервисы и Службы
      • Основы AJAX
      • Изучаем AngularJS
      • Основы CSS
    • Программер
      • Android
      • VBA
      • Основы php
      • JavaScript
      • Основы Arduino
    • Полезные книги
      • Android
      • Assembler
      • Excel
      • linux
      • CSS
      • Delphi
      • Java
      • JavaScript
      • Joomla
      • Web
      • PHP
      • Unity
    • Полезные советы
      • Установки на Virtualbox
      • Продвижение YouTube канала
      • Как заказывать товары на AliExpress
    • Видео уроки
      • Уроки Word
      • Уроки Excel
      • Уроки сайтостроения
      • Уроки Joomla 3
      • Уроки Android
      • Уроки WordPress
      • Полезные советы
      • Уроки PowerPoint
      • Основы Arduino
      • Основы MacOS
      • Основы Vbox
      • Основы Python
    • Блог

    Категории

    • Уроки Word
    • Уроки Excel
    • Уроки PowerPoint
    • Уроки Access
    • Основы Сайтостройения
    • Уроки HTML
    • Уроки Joomla
    • Уроки WordPress
    • Уроки Bootstrap 3
    • Уроки Android
    • Уроки VBA
    • Основы Arduino

    Разное

    • О сайте
    • Полезные советы
    • Скачать книги
    • Карта сайта
    • Правила сайта

    Видео уроки

    • Уроки Word
    • Уроки Excel
    • Уроки сайтостроения
    • Уроки Joomla 3
    • Уроки Android
    • Уроки WordPress
    • Полезные советы
    • Уроки PowerPoint
    • Основы Arduino

    Подпишитесь в соцсетях

    • Канал на RuTube
    • Группа ВКонтакте
    • Группа в Одноклассниках
    • Канал на YouTube
    © 2019 Компьютерапия - Советы и секреты новичкам в области IT технологий: программирование, сайтостроение, уроки HTML, Word, Excel, Android, Open Server, Joomla, WordPress,PowerPoint, Aliexpress, YouTube, Arduino, видеоуроки.. Все права защищены.
    Перепечатка материалов без согласования допустима при наличии dofollow-ссылки на страницу-источник.