【问题标题】:Query the database where used for loops查询用于循环的数据库
【发布时间】:2017-09-29 18:13:53
【问题描述】:

我在调用用于循环的数据库时遇到问题。

数据库查询1

SELECT id,qtyslot FROM rack WHERE theid = '1'

例如id = 2qtyslot = 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。

标签: php mysql loops


【解决方案1】:

你可以在mysql中使用SUBSTRING_INDEX函数。 试试这个:

SELECT * FROM books WHERE idrack = '2' AND $x BETWEEN SUBSTRING_INDEX(slot, ',', 1) and SUBSTRING_INDEX(slot, ',', -1)

【讨论】:

  • 但是对于 slot 列,它是从 - 到的值,而不是默认值。比如 2.4 就是 slot 2, 3 and 4。结果会像上表一样,例如 slot 2.4 将从 loop 2,3 和 4 连接起来。谢谢您的关注
  • 我试过了,结果是合适的。非常感谢。有一次非常吓人。再次感谢。但是,如果您不介意,请帮助我如何使名称在插槽中间隔,如果使用表,则 排序的 rowspan = 3 这个结果 2.4(3 个插槽)。请帮忙。如上表。
  • 或者像@Ahmed Ginani 这样的东西,如何找到 id = 1 的指定插槽数 2,4 ?后来结果是 3 因为插槽 2,3 和 4 的数量是 3 个插槽。这是我真的做不到的。请帮忙
猜你喜欢
相关资源
最近更新 更多
热门标签