Twitter API から取得したデータの json_decode である配列があります。
私が使用している配列のセクションは次のとおりです。
Array(
[0]=>stdClass Object (
[user] => stdClass Object (
[screen_name] => User1
)
[text] => Text of message
[id] => 220301332135952385
[created_at] => Tue Jul 03 23:41:45 +0000 2012
)
[1]=>stdClass Object (
[user] => stdClass Object (
[screen_name] => User2
)
[text] => Text of message
[id] => 220301332135952385
[created_at] => Tue Jul 03 23:41:45 +0000 2012
)
)
私が直面している問題は、私のPHPが値を取得しているだけで、そこから値User1
を取得しText of message
ていることです。私の実際の配列はもっと長いですが、上記のパターンに従います。
これが私のPHPです:
foreach($tweet as $num => $val) {
$username = $tweet[$num]->user->screen_name;
echo $num . "-USER-" . $username . "-NAME ";
$tweet = $tweet[$num]->text;
$id = $tweet[$num]->id_str;
$year = substr($tweet[$num]->created_at, -4);
$statement = $connect->prepare("INSERT INTO table (username, tweet, id, year) VALUES ('$username', '$tweet', '$id', '$year')");
$statement->execute();
}
$tweet
私の配列です。そこecho
には、デバッグに使用していたものがあります。以下を出力します。
1-USER-User1-NAME 2-USER--NAME 3-USER--NAME
私は期待しています:
1-USER-User1-NAME 2-USER-User2-NAME
最後に、私のデータベースUser1
はユーザー名の列とText of message
ツイートの列だけを受け取ります。id または year には何も挿入されません。ただし、最初のツイートの後に各ツイートに対して空の行が作成されます。私が間違っているのかわかりません。どんな助けでも大歓迎です。ありがとう!