您在這裡

facebook api和drupal之間的問題

renren's 的頭像
renren 在 2012-09-12 (三) 17:07 發表

各位好

我所使用的drupal是7.12版本,在這邊想請教一下FB API和drupal之間的問題

以下是我的片段程式碼
<?php
$fql = 'SELECT movies, music, books, tv, sports FROM user WHERE uid = ' . $fb_user_id;
$ret_obj = $facebook -> api(array(
'method' => 'fql.query',
'query' => $fql,
));

if ($ret_obj!=NULL)
{
print '

';
    print_r($ret_obj);
    print '

';
}

foreach($ret_obj as $id)
{
print '

';
    print_r($id);
    print '

';
}
?>
======以下是print出來的結果======

Array
(
[0] => Array
(
[movies] => 海角七號, 玩命關頭5, 賽德克巴萊
[music] => FTISLAND, CNBLUE, 楊丞琳 Rainie Yang, 丁噹 Ring, 羅志祥 SHOW
[books] => 有個女孩叫Feeling, 第一次的親密接觸
[tv] => 雨夜花, 我們結婚了, 小資女孩向前衝, 愛上巧克力, 我可能不會愛你, 真愛找麻煩, 醉後決定愛上你
[sports] => Array
(
)

)

)

Array
(
[movies] => 海角七號, 玩命關頭5, 賽德克巴萊
[music] => FTISLAND, CNBLUE, 楊丞琳 Rainie Yang, 丁噹 Ring, 羅志祥 SHOW
[books] => 有個女孩叫Feeling, 第一次的親密接觸
[tv] => 雨夜花, 我們結婚了, 小資女孩向前衝, 愛上巧克力, 我可能不會愛你, 真愛找麻煩, 醉後決定愛上你
[sports] => Array
(
)

)

======以下是我想要的預期結果======

希望針對某個項目(例如:movies)分別把細項印出來
例如print出來的結果如下:

1.海角七號
2.玩命關頭5
3.賽德克巴萊
movies共3項 // count($movies)

1.有個女孩叫Feeling
2.第一次的親密接觸
books共2項 //count($books)

//依此類推

有使用過drupal_map_assoc($ret_obj[0], '_aggregator_items')這方式
不過也只是把這5個項目印出來,並不是印出期望的細項
count($ret_obj)也一定是5,並不是根據項目印出細項的個數

請問有前輩知道要怎麼解決嗎?
請前輩不吝指教,謝謝

看上去是 PHP 問題呢...

你 FOREACH 結果都用 explode() 分割...再按你想要的方式印出...

真的很 Drupal API 方式大概長的像這樣:

$data = array(
'movies' => '海角七號, 玩命關頭5, 賽德克巴萊',
'music' => 'FTISLAND, CNBLUE, 楊丞琳 Rainie Yang, 丁噹 Ring, 羅志祥 SHOW',
);

foreach($data as $key => $item) {
$arr['data'] = $key;
$arr['children'] = explode(', ', $item);
$list['items'][] = $arr;
}
$list['type'] = 'ol';
echo theme('item_list', $list);

http://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_ite...

您好

依照您的建議後,出現了warning,訊息如下:

Warning:explode() expects parameter 2 to be string, array given 於 fbcf_poi_form_recommendation() (C:\TWAMPd\htdocs\drupal-7.12\sites\all\modules\fbcf_poi\fbcf_poi.module 中的第 421 行)。

這邊的421行是$arr['children'] = explode(', ', $item);

另外,想請教一下,我想單獨印出movies的訊息,並將movies的訊息存進DB內
要怎麼做會比較好呢?

謝謝您播空指導,謝謝