【发布时间】:2017-09-29 18:13:53
【问题描述】:
我在调用用于循环的数据库时遇到问题。
数据库查询1
SELECT id,qtyslot FROM rack WHERE theid = '1'
例如id = 2
和qtyslot = 12
我们创建 for 循环
for ($x = 1; $x <= 12; $x++) {
这里我调用的数据库跟slot的标识不同 1 或 2,4(逗号从 2 到 4 个插槽)等。
如何选择
SELECT * FROM books WHERE idrack = '2' AND slot"......." // $x
数据库结构如下。
---------------------- |编号 |插槽 |姓名 | ---------------------- | 1 | 1 |姓名 | ---------------------- | 2 | 2,4 |姓名 | --> 如何用上面的循环定义这个($x) ---------------------- | 3 | 5,6 |姓名 | --> 如何用上面的循环定义这个($x) ---------------------- | 4 | 7 |姓名 | ----------------------表格中的结果是这样的
----------------------------------------- |循环数量 |在插槽 |备注 | ----------------------------------------- | 1 |名称槽 1 |备注 | ----------------------------------------- | 2 | | | ---------------| | | | 3 |名称槽 2,4 |备注 | ---------------| | | | 4 | | | ----------------------------------------- | 5 |姓名 | | ---------------|插槽 5,6 |备注| | 6 | | | ------------------------------------------ 等多达12个谁能帮帮我。
【问题讨论】:
-
首先使用
strpos来检测字符串中是否有逗号,然后explode。如果我们当然有逗号,这将完成。否则继续正常迭代。或者您可以使用 mysql 的IN运算符,然后使用implode -
谢谢@Akin。但是对于 slot 列,它是从 - 到的值,而不是默认值。示例 2.4 位于 LOOP 2、LOOP 3 和 LOOP 4。但部分插槽只有 1。