2010-01-05 22 views
0

好的...我遇到了以下問題 - 在我的Facebook應用程序中,我讓人們用他們的user_id,post_id和日期添加將他們發送到我的數據庫的引號。然後有一個瀏覽頁面,人們看到帖子 - 迄今爲止,這很好。但是,然後我添加一個按鈕,讓我的用戶將該帖子設置爲他們的狀態。還是很好。但是,當我按下按鈕時,它將數據庫中的所有帖子一一設置爲我的狀態,直到它們都以我的狀態打印出來。我確信這是因爲我使用的'while'函數,因爲我不確定如何打印出所有帖子,並且能夠添加到每個所述按鈕,只保留db ._中的特定post_id。 「PHP/MySQL問題[facebook-related]

所以,換句話說,它是一個PHP/MySQL的主要問題,因此,即使你不熟悉FBML,你仍然可以幫助我的代碼......它

覺得作爲一個列表的帖子,每個應該有一個按鈕做一些事情,並以某種方式只附加到特定的職位。

的代碼如下:

.... some code here .... 

$query = 'SELECT * FROM tb_table ORDER BY `time` DESC'; 
$results = mysql_query($query); 

---some other code--- 

while($line = mysql_fetch_assoc($results)) { 
echo '<TABLE BORDER=0><TR VALIGN=TOP><TD>'; 
echo "<fb:profile-pic uid=".$line['userid']." size='square' facebook-logo='true'></fb:profile-pic></TD>"; 
echo "<TD>".$line['postid']."<br>"."<br>"."Posted by: ".$data['first_name'].$data['last_name']."<br>".date("F j, Y, g:i a", $line['fb_time'])."</TD>"; 
//Problems start from here 
echo $facebook->api_client->users_setStatus($line['postid']) ; 

echo '<div id="statusdiv" style="display:<?=$visibility;?>;"> 
    <form method="POST"> 
      <input type="submit" value="change status" /> 
    </form> 
</div> '; 
echo "</TR></TABLE><br>"; 

回答

0

你現在正在做的事情是每次你通過你的mysql結果集循環調用users_setStatus功能,然後將你的狀態(每次迭代)的時間。

您想添加一個隱藏的輸入字段到包含$line['postid']的表單,然後在表單的POST後調用users_setStatus。這樣你只能改變你的狀態一次。

更新

從while循環中刪除呼叫users_setStatus。 更改你這樣的形式:

echo '<div id="statusdiv" style="display:<?=$visibility;?>;"> 
    <form method="POST"> 
      <input type="submit" value="change status" /> 
      <input type="hidden" name="line" value="'.$line['postid]'.'" /> 
    </form> 
</div> '; 

然後,在提交趕上POST變量。有類似的東西:

if (isset($_POST['line'])) { 
echo $facebook->api_client->users_setStatus($_POST['line']) ; 
} 

請參閱http://www.w3schools.com/php/php_forms.asp瞭解更多信息。

+0

謝謝!它現在有效:] – Izumi 2010-01-05 19:08:59