Php 按模式解析、拆分或分解mysql列

Php 按模式解析、拆分或分解mysql列,php,mysql,Php,Mysql,我有一个包含以下列的表: Id |标题|状态|更新|日志 “更新日志”列中的数据如下所示: 优先级更改为低。已转移到用户操作员。-2009年7月30日星期四下午03:53:39管理员-/-状态更改为进行中。-2009年9月15日星期二下午4:12:40由操作员操作-/-状态更改为关闭。-2009年9月18日星期五上午10:39:22管理员-//- 我想做一个这样的报告: Id |标题|状态|状态更改进行中日期|状态更改结束日期|从进行中日期到结束日期的时间间隔 我怎样才能做到这一点?当您得到:

我有一个包含以下列的表:

Id |标题|状态|更新|日志 “更新日志”列中的数据如下所示:

优先级更改为低。已转移到用户操作员。-2009年7月30日星期四下午03:53:39管理员-/-状态更改为进行中。-2009年9月15日星期二下午4:12:40由操作员操作-/-状态更改为关闭。-2009年9月18日星期五上午10:39:22管理员-//-

我想做一个这样的报告:

Id |标题|状态|状态更改进行中日期|状态更改结束日期|从进行中日期到结束日期的时间间隔 我怎样才能做到这一点?

当您得到:

$update_log = $row["update_log"]; // "Coresponds to "Priority Changed to Low. Transferre ..."
使用:


因此,您可以访问日志的每一行,例如,将其存储在一个数组中并执行您想要的操作。

直到$updates=explode-/-,$update\u log,这一切都是正常的。但我需要从数组中选择两种情况的日期:状态更改为“进行中”和状态更改为“关闭”。这就是我面临的问题,我不知道如何解决。因此,如果数据库中每行的更新日志完全相同,则需要$updates[1]和$updates[2]
$updates = explode("--//--",$update_log);
foreach($updates as $one_update) {
    $exploded_update = explode("--",$one_update);
    $log_txt = $exploded_update[0];  // ""
    $lod_date = $exploded_update[1];
}