2014-07-25 49 views
0

這可能是重複的。不知道要搜索什麼,所以我沒有找到任何東西。

$get_feed_p=mysql_query("SELECT followed FROM follow WHERE user='$_COOKIE[PC_ID]'"); 
while($feed_p=mysql_fetch_assoc($get_feed_p)){ 
    $get_feed=mysql_query("SELECT * FROM status WHERE to_user='$feed_p[followed]' ORDER BY id DESC LIMIT 20"); 
} 

所以首先查詢選擇跟隨型材(像在Twitter上) 第二個選擇狀態更新。

我遇到的問題是訂購。因爲我使用WHERE to_user = $ feed_p [後面的]所有的狀態都是按用戶排序的,而不是像我需要的那樣的id。

我如何通過id對行進行排序?

+0

你有一個用戶表,我們可以找到用戶和id? – Youness

+0

是的,但它沒有連接到任何這個。 – user3748305

回答

2

如果我已經解釋你正在嘗試做正確(列出用戶發佈的所有狀態在用戶遵循登錄並通過身份ID,最近首先列出),那麼你呢?想要做到這一點:

$get_feed = mysql_query("SELECT status.* FROM follow 
RIGHT JOIN status ON status.to_user = follow.followed 
WHERE follow.user = '" . $_COOKIE[PC_ID . "' ORDER BY status.id DESC LIMIT 20") 

真的很希望這是你要找的,因爲這是我的第一個答案。

+0

正是我需要的!非常感謝你。 – user3748305

+0

非常歡迎! – Niklas

0

如何使用連接而不是多選? 喜歡的東西(我在我的移動,因此無法嘗試它,我可能有周末期間更深入的瞭解):

 
SELECT 
    follow.followed, status.id 
FROM 
    follow 
    LEFT JOIN status ON status.id IN (
     SELECT 
      id 
     FROM 
      status 
     WHERE 
      follow.user = status.to_user 
     ORDER BY id LIMIT 20) 
WHERE 
    followed.user = '$_COOKIE[PC_ID]' 
+0

試圖讓這個工作,但我很少使用mysql_queries,我有問題。似乎我沒有正確輸出或者查詢錯誤。 – user3748305

0

可以說是包含了用戶的表是user_tbl(用戶和IDS):

"SELECT * FROM status WHERE 
to_user='$feed_p[followed]' ORDER BY 
(select id from users_tbl where username='$feed_p[followed]') DESC LIMIT 20" 
+0

難道這不會直接由用戶ID再次命令?我需要它按狀態ID排序。 – user3748305