私はソーシャルネットワークを作成しています。ユーザーがユーザーをサブスクライブできるようにしたい。理論的には、ユーザーがサブスクライブボタンをクリックすると、PHPはそのユーザーのIDをMYSQLリストの「サブスクライブ先」列の下の配列に追加します。さて、ニュースフィードスタイルのホームページが欲しいです。PHPを介して「サブスクライブ先」のデータを取得する場合、ユーザーがサブスクライブしているユーザーの投稿(MYSQLテーブルにも)のみを表示するにはどうすればよいですか?
質問する
144 次
2 に答える
1
UNIONを使用して、さまざまなテーブルのすべての投稿を結合し、「IN」句を使用して、現在のユーザーIDに基づいてフォローするすべてのユーザーIDを取得します。
例:
$userFavs = "SELECT userID FROM favs WHERE followerID = '#loggedinUserID#'"
mysql_query("SELECT 'wall' as type, body, date FROM wall WHERE userID IN ($userFavs)
UNION
SELECT 'photo' as type, caption, date FROM photos WHERE userID IN ($userFavs) UNION... etc
ORDER BY date DESC");
mysql_fetch_array()を介してクエリを実行すると、次のようなものが返されます。
Array => {
[0] => { type = "wall", body = "This is a wall update", date = "1234567890" },
[1] => { type = "photo", caption = "Us at the beach", date = "..." },
...
}
「UNION」を呼び出すたびに、各SELECTステートメントに同じ数の列があることを確認する必要があります。そうしないと機能しません。上記の列で行ったように、/fake/列を作成できますtype
。
于 2012-04-12T01:04:45.147 に答える