我的数组如下所示:
Array
(
[0] => Array
(
[created_at] => Sat Jun 25 21:22:20 +0000 2011
[text] => i'm eating apple
[sender] => Array
(
[name] => mark o
[created_at] => Wed May 28 18:21:03 +0000 2008
)
[recipient] => Array
(
[created_at] => Mon Jun 21 19:48:50 +0000 2010
[screen_name] => playassassin
)
[sender_screen_name] => mark
[recipient_screen_name] => james
)
[1] => Array
(
[created_at] => Mon Jun 20 10:52:37 +0000 2011
[text] => My bday in 5 minutes
[sender] => Array
(
[name] => mark o
[created_at] => Wed May 28 18:21:03 +0000 2008
)
[recipient] => Array
(
[created_at] => Mon Jun 21 19:48:50 +0000 2010
[screen_name] => james
)
[sender_screen_name] => mark
[recipient_screen_name] => james
)
)
这是来自Twitter API的直接消息提要的简化版本。我将使用PHP和twitter异步库每X分钟请求一次最新的DM,然后我想将数组的部分存储在数据库表中。每个DM都应存储在自己的行中
数据将存储在以下表格中:
CREATE TABLE `dms` (
`postid` INT(12) NOT NULL,
`text` VARCHAR(140) NOT NULL COLLATE 'utf8_unicode_ci',
`sender` VARCHAR(20) NOT NULL COLLATE 'utf8_unicode_ci',
`sender_id` VARCHAR(20) NOT NULL COLLATE 'utf8_unicode_ci',
`date_created` DATETIME NOT NULL
)
我真的不知道该怎么做,非常感谢你的帮助。
如果它能简化事情,我只需要从中的第二层提取值。此外,我不知道要添加多少行。
我一直在乱搞,这个代码几乎满足了我的需求:
foreach ( $adms as $dm ) {
foreach ( $dm as $key => $value ) {
$q = "INSERT INTO dms SET text = '{$value}'";
mysqli_query ($dbc, $q) or trigger_error("Query: $qn<br />MySQL Error: " . mysqli_error($dbc));
}
}
当然,这只是将每一个第二级值存储在"text"列的新行中。如果你能帮我完成我的要求,我会标记你的答案。
嗯。。。您只输入一个值。
试试这样的东西:-
foreach ( $adms as $dm ) {
$q = "INSERT INTO dms(text, sender, sender_id, date_created) values('".$dm["text"]."', '".$dm["sender_screen_name"]."', '".$dm["sender"]["name"]."', now())";
mysqli_query ($dbc, $q) or trigger_error("Query: $qn<br />MySQL Error: " . mysqli_error($dbc));
}
定义parent_postid,因此插入父项,获取其id,并在parent_postid 中插入具有该id的子记录
CREATE TABLE `dms` (
`postid` INT(12) NOT NULL,
`parent_postid` INT(12) NOT NULL,
`text` VARCHAR(140) NOT NULL COLLATE 'utf8_unicode_ci',
`sender` VARCHAR(20) NOT NULL COLLATE 'utf8_unicode_ci',
`sender_id` VARCHAR(20) NOT NULL COLLATE 'utf8_unicode_ci',
`date_created` DATETIME NOT NULL
)
这可以进行到许多n级。。。每个子可以是一个父级,依此类推…
您想要实现的也称为切碎,例如xml切碎。基本思想是将数组想象成一棵树。一旦将信息作为树,就可以将每个节点存储在线性表中。与每个节点(即包含的信息)一起,您存储其父/子关系以及恢复初始结构所需的任何内容。