[英]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.