MySQLi Multi_Query Post
MySQLi Multi_Query Post
我正在使用 JSON 向我的 PHP API 发送数据。我想用 API 向我的 Android 用户发送推送通知。我正面临一个奇怪的问题。
从 JSON,我正在发送 Mobile Number
、Mobile Number Status
和 User Id
。
我的数据库中有两个 table:
user
具有名为 id
、fcm
和 fcm_enabled
的字段
number_list
具有名为 number
、name
和 user_id
的字段
现在我想向我们从 1
中的 JSON 获得的任何号码状态发送推送通知。要发送通知,它需要检查 fcm_enabled=1
,然后它需要从 table 1
的用户的 fcm
字段中获取 fcm
键,以及 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]);
}
}
}
}
}
谢谢。
如果两个用户有相同的号码,可能是取了重复的用户记录。 "Group By"取号可以帮到你
更新查询如下:
$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";
我正在使用 JSON 向我的 PHP API 发送数据。我想用 API 向我的 Android 用户发送推送通知。我正面临一个奇怪的问题。
从 JSON,我正在发送 Mobile Number
、Mobile Number Status
和 User Id
。
我的数据库中有两个 table:
user
具有名为id
、fcm
和fcm_enabled
的字段
number_list
具有名为number
、name
和user_id
的字段
现在我想向我们从 1
中的 JSON 获得的任何号码状态发送推送通知。要发送通知,它需要检查 fcm_enabled=1
,然后它需要从 table 1
的用户的 fcm
字段中获取 fcm
键,以及 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]);
}
}
}
}
}
谢谢。
如果两个用户有相同的号码,可能是取了重复的用户记录。 "Group By"取号可以帮到你
更新查询如下:
$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";