【发布时间】:2018-09-22 02:15:19
【问题描述】:
我正在使用 JSON 向我的 PHP API 发送数据。我想使用此 API 向我的 Android 用户发送推送通知。我面临一个奇怪的问题。
从 JSON,我发送 Mobile Number、Mobile Number Status 和 User Id。
我的数据库中有两个表:
-
user包含名为id、fcm和fcm_enabled的字段 -
number_list包含名为number、name和user_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