2013-01-10 29 views
0

我正在製作一個像Twitter的社交工具,但我被卡在「誰也鳴叫這個twitter」。找到朋友誰也鳴叫這

我的網頁上有一個推文列表,我想要顯示誰也推送了這個推文。

我正在使用MySQL + php + Smarty。

下面的代碼: /* ---- ---- PHP */

// Get twitters that tweeted over 200 times. 
$sql = mysql_query("SELECT id, content, user, tweets FROM twitter_list WHERE tweets > '200'"); 
$twitter_array = array(); 
while($tweet_row = mysql_fetch_array($sql)){ 
    array_push($twitter_array, $tweet_row); 
    // Get the users who tweeted these twitters. 
    $twitter_id = $tweet_row['id']; 
    // Find out 5 friends who also tweeted this twitter. twitter_relation stores who tweets what. 
    $friends_who_also_tweet = mysql_query("SELECT tid, twitter_id, user_id FROM tweet_relation WHERE twitter_id = '$twitter_id' ORDER BY tid DESC LIMIT 5"); 
    $friends_who_also_tweet_array = array(); 
    while($friends_who_also_tweet_row = mysql_fetch_array($friends_also_tweet_array)){ 
     array_push($friends_who_also_tweet_array, $friends_who_also_tweet_row); 
    } 
    if($friends_who_also_tweet_array){ 
     $sm->assign("fwat", $friends_who_also_tweet_array); 
    } 
} 
if($twitter_array){ 
    $sm->assign("twitter", $twitter_array); 
} 
$smarty->display('twt.html'); 

/* ---- HTML:twt.html ---- */

... 
{section name=twitter loop=$twitter} 
<div class="content">{$twitter[twitter].content}</div> 
<div class="who_also_tweet"> 
    {section name=who loop=$fwat} 
    <div class="i_also_tweet">{$fwat[who].user_id}</div> 
    {/section} 
</div> 
{/section} 

我希望得到twitter的數組,並且對於每個twitter,檢索推送它的5個用戶。但它只顯示第一個twitter的用戶,我懷疑while()可能是錯誤的,但無法找到它。任何人都可以幫我一把嗎?非常感謝。

+0

花一點時間重新設置代碼的格式,你可能會得到更多的幫助。 – ChrisMoll

+0

@ChrisMoll你的意思是這個想法是正確的,對吧? – Matt

+0

那麼,我完全不瞭解這些目標。你是在創建自己的「推特」還是使用真實的東西?真正的Twitter有這樣的API的API,但你從你自己的數據庫中抽出一切。 – ChrisMoll

回答

1
$twitter_array = array(); 

則:

if($twitter_array){ 
    $sm->assign("twitter", $twitter_array); 
} 

你永遠不添加任何東西到該陣列。我假設你的意思是在這裏做(因爲$tweet_array從不聲明):

array_push($tweet_array, $tweet_row); 

事實上,這個變量也被分配從來就不是被稱爲好:

$friends_who_also_tweet 

您的變量命名非常混亂,我認爲這可能會導致你的問題。

編輯:另外,爲什麼你分配第一個While循環的每次迭代?它只是覆蓋以前的值:

if($friends_who_also_tweet_array){ 
     $sm->assign("fwat", $friends_who_also_tweet_array); 
    } 
+0

Thx爲您的患者和你的答覆。我認爲$ tweet_array應該是我編輯的$ twitter_array。我會採納你的建議並進一步測試。 – Matt

+0

看我的編輯/ 15char – ChrisMoll