首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历php中的表以找到适合我的数据的最佳位置

问循环遍历php中的表以找到适合我的数据的最佳位置
EN

Stack Overflow用户
提问于 2015-04-08 15:29:45
回答 1查看 55关注 0票数 0

运行mysql查询后,将得到包含数据的列表,格式如下:

代码语言:javascript
复制
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     while($row = $result->fetch_assoc()) {
         echo "<br> id: ". $row["event_id"]. " - timestamp: ". $row["event_start"]. " " . $row["event_duration"] . "<br>";
     }
}

基本上,每一行都有三个字段:

代码语言:javascript
复制
event_id   |   event_start   |   event_duration

现在,我想要实现的是在php中遍历返回的行,并找到一个可以使用event_start时间戳和event_duration放置新事件的地方。我正在寻找的地方必须是免费的,并准备通过它的整个event_id event_duration充满它。

快速示例:假设在数据库中有4个事件:

代码语言:javascript
复制
e1 starts at 1:00:10 and lasts 30 seconds

e2 starts at 1:00:40 and lasts 20 seconds

e3 starts at 1:01:30 and lasts 40 seconds

e4 starts at 1:02:50 and lasts 20 seconds.

现在我想插入持续20秒的e5,所以最好的位置是在e2和e3之间,所以在我提供了e5的id和它的持续时间之后,我想收到我可以把它放在哪里的时间戳(在我的示例中是1:01:00)。如何在php中创建这样的循环?

编辑:

返回数据的Select如下所示:

代码语言:javascript
复制
select event_id, event_start, event_duration 
from table 
where event_start>= 'begin-boundary-time' 
    and event_start+ event_duration <= 'end-boundary-time'
EN

回答 1

Stack Overflow用户

发布于 2015-04-08 15:44:53

如果您真的使用MySQL数据库来存储事件,那么我不会担心循环遍历数据和找到插入的位置。在使用SQL查询中的order语句查看事件时,可以对信息进行排序。这很可能比每次运行PHP循环更快(取决于表上的大小、碎片或索引)。您的插入将更准确,因为它们不会被延迟循环通过以找到一个插槽。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29518977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档