MySQLi Multi_Query Post

Я отправляю данные в мой PHP API, используя JSON. Я хочу отправить push-уведомление своему пользователю Android с этим API. Я сталкиваюсь с одной странной проблемой в этом. Из JSON отправляю Mobile Number, Mobile Number Status а также User Id,

У меня есть две таблицы в моей базе данных:

  1. user который имеет поля под названием id, fcm а также fcm_enabled
  2. number_list который имеет поля под названием number, name а также user_id

Теперь я хочу отправить push-уведомление для любого статуса номера, который мы получаем из JSON в 1, Для отправки уведомления необходимо проверить, fcm_enabled=1то нужно получить fcm ключ от fcm поле из table 1Пользователь и name от table 2имя

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

Я думаю, что-то не так в моем запросе. Дайте мне знать, если кто-то может помочь мне решить мою проблему. Я пробовал последние два дня, но безуспешно.

$number = $_GET["number"];
$status = $_GET["status"];
$userIds = $_GET["userId"];
$sql = "";
for($i = 0; $i < count($number); $i++) {
    if($status[$i] == 1) {
        $sqlSelect = "SELECT t2.name, t1.fcm, t1.fcm_enabled FROM user AS t1 INNER JOIN number_list AS t2 ON t1.id = t2.user_id WHERE t2.number = '$number[$i]'";
        $resultSelect = $conn->query($sqlSelect);
        if($resultSelect) {
            while($row = $resultSelect->fetch_row()) {
                if($row[2] == 1) {
                    sendFCM(array("title" => $row[0] . " is Online", "body" => ""), array("message" => ""), $row[1]);
                }
            }
        }
    }
}

Благодарю.

1 ответ

Решение

Если есть одинаковый номер для двух пользователей, может быть, он извлекает дубликаты записей пользователей. "Группировать по" номер для извлечения может помочь вам.

Обновлен запрос:

$sqlSelect = "SELECT t2.name, t1.fcm, t1.fcm_enabled FROM user AS t1 INNER JOIN number_list AS t2 ON t1.id = t2.user_id WHERE t2.number = '$number[$i]'  GROUP BY t1.id";
Другие вопросы по тегам