0

ユーザーテーブル

  • (ユーザーID)
  • (ユーザー名)
  • (パスワード)
  • (メール)など...

投稿テーブル

  • (authorID)
  • (postdata)

接続テーブル

  • (ユーザーID)
  • (friendID)

Subscriptions.userIDがuser.userIDの場合、subscription.friendIDをposts.authorIDとして使用して投稿データのみを取得したいと思います。

それは私にはちょっと混乱しています、うまくいけば誰かが私を助けてくれるでしょう。これは私がこれまでに持っているものですが、サブスクリプションデータも取得しています。ポストテーブルデータのみが必要です。

 mysql_query("SELECT posts.*, connections.userID, connections.subID FROM posts, connections
        WHERE posts.userID = '$userid' AND posts.userID = connections.subID");
4

2 に答える 2

0

投稿データのみが必要な場合は、次のようにします。

mysql_query("SELECT posts.* FROM posts, connections
        WHERE posts.userID = '$userid' AND posts.userID = connections.subID");

余分な注意として、 $userid がユーザーによって提供されている可能性がある場合 (たとえば、HTML フォームを介して)、クエリに入れる前に少なくとも mysql_real_escape_string() を介して実行してください。そうしないと、SQL インジェクション攻撃に対して脆弱になります。さらに良いのは、PDO などを介して準備済みステートメントを使用することです。

于 2011-05-18T01:27:37.153 に答える
0

元の投稿には接続テーブルが表示されないため、提供されたスキーマに基づいて作業します。

あなたがここに書いたことに基づいて、「一部のユーザーの友達からすべての投稿を取得する」のようなものを探していると思います-それは次のようになります:

     SELECT p.authorID, p.postdata
       FROM posts p
 INNER JOIN subscriptions s ON s.friendID = p.authorID    
      WHERE s.userID = '$userid'

この機能は、Facebook のウォール機能に似ています。

ユーザー名などのユーザー情報がさらに必要な場合は、ユーザー テーブルにも参加できます。

于 2011-05-18T01:28:01.203 に答える