我对编程很新,所以我希望这个问题有一个简单的解决方案。我在发帖前搜索了一个答案,但我不确定我在寻找什么。
基本上,我有一个具有以下结构的数据库:
Table: things
Column 1- ID
Column 2- Name
Column 3- Year
Column 4- Timestamps
我有许多格式为hh:mm:ss的 thing 的大量时间戳,我想将它们存储在things表的第4列中。表中的每个项目都有不同数量的时间戳,所以我认为将它们全部存储在用逗号分隔的单个列中是有意义的(hh:mm:ss,hh:mm:ss)而不是将每个时间戳存储在自己的列中。从这里开始,我希望使用PHP我可以选择 thing 的名称并调用其年份和时间戳,将每个时间戳分隔为自己的变量。
示例:的
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"
以下是我的问题......
任何帮助都将非常感谢。正如我上面所说的,我是初学者,所以如果这是一个微不足道的问题我很抱歉!
谢谢!
答案 0 :(得分: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");
然后,将数组元素分配给各个变量的方法很多且各不相同。 欢呼声。
答案 1 :(得分: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
实用解决方案
但是,如果不改变DB结构,那么您可以使用:
$ts = explode(',', $timestamp);
您将收到$ ts变量
中所有时间戳的数组