【问题标题】:MySQLi Multi_Query PostMySQLi Multi_Query Post
【发布时间】:2018-09-22 02:15:19
【问题描述】:

我正在使用 JSON 向我的 PHP API 发送数据。我想使用此 API 向我的 Android 用户发送推送通知。我面临一个奇怪的问题。 从 JSON,我发送 Mobile NumberMobile Number StatusUser Id

我的数据库中有两个表:

  1. user 包含名为 idfcmfcm_enabled 的字段
  2. number_list 包含名为 numbernameuser_id 的字段

现在我想向我们从1 中的 JSON 获得的任何号码状态发送推送通知。要发送通知,它需要检查是否fcm_enabled=1,然后它需要从table 1 的用户的fcm 字段中获取fcm 键,并从table 2 的名称中获取name

在正常情况下它工作正常,但如果两个用户有相同的手机号码,那么我会在一台设备上收到两个通知,在另一台设备上收到一个通知。

我认为我的查询有问题。让我知道是否有人可以帮助我解决我的问题。这两天我一直在尝试,但是没有成功。

$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、2、3?)或者,只需在 mysql CLI 中运行您的查询,并显示结果(这也可能回答您的问题)。

标签: php mysql mysqli mysqli-multi-query multi-query


【解决方案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";

【讨论】:

    猜你喜欢
    • 2012-01-25
    • 2019-07-16
    • 2016-08-07
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    相关资源
    最近更新 更多