1

一般来说,我对编程很陌生,所以我希望这个问题有一个简单的解决方案。我在发布之前搜索了答案,但我不确定我在寻找什么。

基本上,我有一个具有以下结构的数据库:

Table: things
Column 1- ID
Column 2- Name
Column 3- Year
Column 4- Timestamps

我有很多格式为hh:mm:ss 的东西的时间戳集合,我想将它们存储在 things 表的第 4 列中。表中的每个项目都会有不同数量的时间戳与之关联,所以我认为将它们全部存储在用逗号分隔的单个列中是有意义的 (hh:mm:ss,hh:mm:ss) 而不是将每个时间戳存储在其自己的列中。从这里开始,我希望使用 PHP 可以选择事物的名称并调用它的年份和时间戳,将每个时间戳分成自己的变量。

例子:

Column 2- Thing20
Column 3- 1997
Column 4- 00:01:24,00:05:28,00:16:52

$name = "Thing20"
$year = 1997
$ts1 = "00:01:24"
$ts2 = "00:05:28"
$ts3 = "00:16:52"

这是我的问题...

  1. 这是满足我需求的实用解决方案吗?我很难想出更好的方法来做到这一点......
  2. 我将如何分离时间戳(在数据库条目中用逗号分隔)并将它们存储为增量变量?相反,我想您会使用数组而不是许多变量。

任何帮助都将不胜感激。正如我上面所说,我是一个初学者,所以如果这是一个微不足道的问题,我很抱歉!

谢谢!

4

2 回答 2

0

我不会试图回答你的方法的优点。在实际层面上,您可以使用explode 将字符串拆分为数组:

// where $col4 = "00:01:24,00:05:28,00:16:52"
$tsarray=explode(',',$col4);
// $tsarray = array("00:01:24","00:05:28","00:16:52");

然后将数组元素分配给各个变量的方法多种多样。干杯。

于 2013-11-04T13:36:47.957 回答
0

设计问题

如果每个 ID 需要 n 个值,则不应将其存储在单个列中,而应将其拆分为两个表。

表1:事物(ID、姓名、年份),其中ID为主键

表 2:时间戳(ID、时间戳),其中 ID 是来自“事物”的外键,您可以在其中存储任意数量的 ID、时间戳对(并且时间戳是单个值)

因此,在您的示例中,表 1 将如下所示:

ID, Name, Year
1, Thing20, 1997

表 2 将如下所示:

ID, timestamp
1, 00:01:24
1, 00:05:28
1, 00:16:52

实用的解决方案

但是,如果不改变数据库结构,那么您可以使用:

$ts = explode(',', $timestamp);

您将收到 $ts 变量中所有时间戳的数组

于 2013-11-04T13:41:06.327 回答