Создайте систему значков с использованием множественных запросов php и выведите массив JSON в студию Android

Я пытаюсь создать систему поощрения значков в своем приложении для Android. Я создал 9 запросов и использовал вызов мультизапроса SQL в PHP. Запросы были созданы для вывода 1 или 0, чтобы упростить обработку стороны Java через "android studio". Эти единицы и нули заменят нулевой значок по умолчанию на заработанный значок. Как проще всего с этим справиться? Изначально я хочу создать просто массив или список 3x3, которые могут легче менять представления. Не уверен, что выходные данные массива должны быть переменной, а затем преобразованы в массив. В настоящее время я использую макет фрейма для переключения между представлениями в Android в большом проекте.

if (isset($_POST['BadgeLayout'])){
    $UserID = mysqli_real_escape_string($conn,$_POST['UserID']);
    echo ($UserID);

// значок определяется счетчиком 1 и 10

    //Leve1Badge1 
    //if count 1 user earns badge- user connected 1` plant
    $sql = "SELECT COUNT(PlantID) FROM Plant WHERE UserID = '$UserID';"

    //Level1Badge2
    //check if against stock if not = to stock url user earns badge
    //does not equal stock image urls
    $sql . = "SELECT GoogleProfileURL FROM User WHERE UserID = '$UserID';"

    // User has fertlized their plants atleast twice
    //Level1Badge3
    $sql . = "SELECT COUNT(wofe.PlantID+p.Nickname+wofe.Occurrence+wofe.EventType)
    FROM WaterOrFertilizeEvent AS wofe
    JOIN Plant AS p
    WHERE p.UserID = '$UserID'
    AND p.PlantID = wofe.PlantID;"

    //Level2Badge1
    //If count = 1 ----> User has both GardenLocationLat and GardenLocationLng enabled

    $sql . = "SELECT COUNT(GardenLocationLng+GardenLocationLat) FROM User WHERE UserID='$UserID' AND GardenLocationLng IS NOT NULL AND GardenLocationLat IS NOT NULL;"

    //Level2Badge2

    // if value count = 0 ---->All user plant id are  FeedingTrackingEnabled
    $sql . = "SELECT COUNT(PlantID) FROM Plant WHERE UserID = '$UserID' AND FeedingTrackingEnabled IS NULL;"

    //Level2Badge3
    //if all plants weather tracking enable count = 0 ----> All user PlantID are WeatherTrackingEnabled 
    $sql . = "SELECT COUNT(PlantID) FROM Plant WHERE UserID = '$UserID' AND WeatherTrackingEnabled IS NOT NULL;"





   //Level3Badge1
   //if true user earns badge
   // exact species  is still needed cactus as place holder
   $sql . = "SELECT COUNT(UserID) FROM Plant WHERE UserID = '$UserID') AND Species = 'Florida Roseling'; "

   //Level3Badge2
   //If plantID count = 10 ---> UserID has 10 plants
   $sql = "SELECT COUNT(PlantID) FROM Plant WHERE UserID = '$UserID';"

   //Level3Badge3
   //If User water all plant id a consecutive of 100x----->user earns badge
   $sqk . = "SELECT COUNT(wofe.EventType)
   FROM WaterOrFertilizeEvent AS wofe
   JOIN Plant AS p
   WHERE p.UserID = '$Userid'
   AND p.PlantID = wofe.PlantID;
   AND wofe.EventType = 'W';"


   $result = mysqli_multi_query($conn, $sql) or die("Error in checking per badges per user " . mysqli_error($conn));

    if (mysqli_multi_query($conn, $sql)) {
      do {
        // Store first result set
        if ($result = mysqli_store_result($conn)) {
          while ($row = mysqli_fetch_row($result)) {
            printf("%s\n", $row[0]);
          }
          mysqli_free_result($result);
        }
        // if there are more result-sets, the print a divider
        if (mysqli_more_results($conn)) {
          printf("-------------\n");
        }
         //Prepare next result set
      } while (mysqli_next_result($conn));
    }

    mysqli_close($conn);
    ?>
Предупреждение: Вы широко открыты для SQL-инъекции и должны использовать параметризованный подготовленные заявления вместо того, чтобы вручную создавать свои запросы. Они предоставляются PDO или MySQLi. Никогда не доверяйте никакому вкладу! Даже если ваши запросы выполняются только доверенными пользователями, вы по-прежнему рискуете повредить свои данные. Одного побега недостаточно!
Dharman 09.04.2021 22:10

При чем здесь Android Studio?

Dharman 09.04.2021 22:10
НИКОГДА НЕ ИСПОЛЬЗУЙТЕ mysqli_multi_query()
Dharman 09.04.2021 22:11
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
7
0

Другие вопросы по теме