我正在做一些用户拥有本地数据库的事情,当他点击检查新书时,它会获得所有IDS(已修复)形式的本地数据库并创建由逗号分隔的字符串(1,2,3,4,5)然后对我的服务器进行GET
www.myserver.com/getNews?ids=1,2,4,10
在服务器端我这样做:
1)获取最后一个ID(已修复)并在名为$total
的var中设置
2)获取用户发送的IDS并使用.explode创建数组(",")
3)获取缺失值$missing = array_diff(range(1,$total),$ids);
获取最大ID并获取$total
和$ids
在这里,我认为它很重要的部分:
对于每个$missing
值,我执行select并构建一个数组以显示为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);
这是唯一的一种方法还是还有其他更多的轻功能?
答案 0 :(得分:3)
NOT IN
条件来选择所需的所有图书。
$strMissing = implode(',', $missing);
$sql = "SELECT * FROM `books` WHERE id NOT IN (".$strMissing.")";