php - 从 VALUES NOT EQUALS = array 的数据库中选择

标签 php mysql arrays

我正在做一些事情,用户有一个本地数据库,当他点击检查新书时,它会从他的本地数据库中获取所有 IDS(固定)并创建由逗号分隔的字符串 (1,2,3,4,5)然后对我的服务器执行 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.")";

关于php - 从 VALUES NOT EQUALS = array 的数据库中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33672277/

相关文章:

php - 如何确定具有多个类别的产品的面包屑?

MySQL:JOIN 和 WHERE 有多个匹配项

php - 如何在 PHP 中将查询字符串更改为 json

c++ - 为什么当我尝试填充数组时我的程序崩溃了?

php - 展平二维数组并将所有字符串值转换为 int

php - 如何使用Laravel在Controller中捕获500错误

php - 行尾字符无效

php - 如何让您的代码存储未确定数量的列?

java - 如何将所有数据库值插入列表列表?

JavaScript 通过给定图像制作笑脸动画