簡體   English   中英

從DB中選擇VALUES NOT EQUALS = array

[英]Select from DB where VALUES NOT EQUALS = array

我在用戶具有本地數據庫的地方做某事,當他單擊以檢查新書時,它會從其本地數據庫中獲取所有IDS(固定),並創建用逗號(1,2,3,4,5)分隔的String,然后執行GET到我的服務器

www.myserver.com/getNews?ids=1,2,4,10

在服務器端,我這樣做:

1)獲取最后一個ID(固定)並設置為$total變量2)獲取用戶發送的IDS並使用.explode(“,”)創建數組3)獲取缺失值$missing = array_diff(range(1,$total),$ids); 獲取最大id並獲取$total$ids之間的缺失數字

這是我認為很重的部分:

對於每個$missing值,我都進行選擇並構建一個數組以顯示為json

    foreach($missing as $m) {

         $sql = "SELECT * FROM `books` WHERE id='$m'";
while($row =mysqli_fetch_assoc($result))
    {


$emparray[] = array_map('utf8_encode', $row);
    }
}
    echo json_encode($emparray);

這是唯一的一種方法,還是還有其他的照明功能?

您可以嘗試這種方式。 用逗號放大數組,然后在查詢中使用NOT IN條件選擇所有需要的書。

$strMissing = implode(',', $missing);

$sql = "SELECT * FROM `books` WHERE id NOT IN (".$strMissing.")";

暫無
暫無

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

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