簡體   English   中英

MySQLi Multi_Query帖子

[英]MySQLi Multi_Query Post

我正在使用JSON將數據發送到我的PHP API。 我想使用此API向我的Android用戶發送推送通知。 我面臨一個奇怪的問題。 從JSON,我正在發送Mobile NumberMobile Number StatusUser Id

我的數據庫中有兩個表:

  1. 具有名為idfcmfcm_enabled字段的user
  2. number_list具有名為numbernameuser_id字段

現在,我想向1從JSON獲得的任何數字狀態發送推送通知。 要發送它需要檢查的通知fcm_enabled=1 ,那么它需要獲得fcm從關鍵fcm字段從table 1的用戶,並且nametable 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]);
                }
            }
        }
    }
}

謝謝。

如果兩個用戶的號碼相同,則可能是獲取用戶的重復記錄。 “分組依據”提取號碼可以為您提供幫助。

使用以下命令更新了查詢:

$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";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM