从DB中选择VALUES NOT EQUALS = array

时间:2015-11-12 13:14:43

标签: php mysql arrays

我正在做一些用户拥有本地数据库的事情,当他点击检查新书时,它会获得所有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);

这是唯一的一种方法还是还有其他更多的轻功能?

1 个答案:

答案 0 :(得分:3)

你可以试试这种方式。使用逗号展开您的数组,然后在查询中使用NOT IN条件来选择所需的所有图书。

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

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