我正在创建一个基于网络的阅读测试。学生会收到一篇随机阅读的文章,一旦他们回答了问题,文章 ID 和他们的学生 ID 就会放在一个表格中,该表格会跟踪他们使用了哪些文章。
我需要返回尚未使用的段落的 ID。我一直在尝试使用 MySQL 的 NOT IN 特性。
$newpassage = "SELECT passName
FROM passages
WHERE passid NOT IN ('$passidarray');";
$passidarray 是包含已经使用过的段落的 id 的数组。但是每次,它仍然返回已经使用过的 channel id。我对数字进行了硬编码,以查看它是否有效并且确实有效。但是他们使用的段落越多,他们使用测试的次数就越多。
例如,如果有三个段落,他们只使用了 1,结果应该返回 2 和 3,但它返回的是 1、2 和 3。那么一旦他们使用了 2,它应该只返回3. 但它正在返回所有这些。我做错了什么吗?任何帮助将不胜感激,甚至是更好的方法。
最佳答案
SQL 不使用 php 的数组对象格式。尝试:
$newpassage = "SELECT passName FROM passages WHERE passid NOT IN (" . implode(',', $passidarray) . ");";
关于php - 如何返回 MySQL 结果,其中的 id 不存在于已使用的 id 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9425284/