0

私はソーシャルネットワークを作成しています。ユーザーがユーザーをサブスクライブできるようにしたい。理論的には、ユーザーがサブスクライブボタンをクリックすると、PHPはそのユーザーのIDをMYSQLリストの「サブスクライブ先」列の下の配列に追加します。さて、ニュースフィードスタイルのホームページが欲しいです。PHPを介して「サブスクライブ先」のデータを取得する場合、ユーザーがサブスクライブしているユーザーの投稿(MYSQLテーブルにも)のみを表示するにはどうすればよいですか?

4

2 に答える 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 に答える
0

DBでアレイをシリアル化する方法を探していると思います。これも役立つかもしれません!

于 2012-04-12T01:02:56.813 に答える