-4

わかりました、フォーラムがあり、2 つのテーブルがあり、1 つはpostsと呼ばれ、もう 1 つはusersであるとしましょう。誰かがサイトにアクセスすると、テーブルポストのすべてのポストが呼び出されます。ユーザーを一時的に禁止し、そのユーザーの投稿をすべて非表示にしたい場合 (またはこの場合複数のユーザーがいる場合)、フォーラムの投稿を呼び出して投稿を非表示にするにはどうすればよいですか? usersテーブルにactiveという列が既にあります。アクティブは、禁止されているかどうかを示す 1 または 0 です。

ありがとう

4

2 に答える 2

3

あなたの質問は非常に漠然としていますが、次のテーブル構造を想定しています:

table users
    id  username    password    active
table posts
    id  userid      title       text        date

次の SQL ステートメントを使用します。

SELECT p.id, p.title, p.text, p.date FROM posts AS p INNER JOIN users AS u ON u.id = p.userid AND u.active = 1;

今、私は SQL の専門家ではありません。ここでエラーが発生する可能性があります。申し訳ありませんが、テストのためにこれをすべて設定するつもりはありません。私の例からそれを理解できない場合は、お気軽にコメントしてください。さらに調査できます。mysql JOIN 構文の詳細については、こちらを参照してください。

編集:私に指摘されたように、INNER JOIN は使用する正しい JOIN です。

于 2012-05-09T02:10:22.227 に答える
-2

フラグであるテーブルに別のフィールドを作成します。表示する場合は 1、表示しない場合は 0 と言ってください。誰かを禁止すると、投稿テーブルが実行され、すべての投稿が検出され、フラグが 0 に設定されるように設定します。投稿を表示するときは、mysql_query で select * from table where show field =1 を使用します。

于 2012-05-09T01:41:17.690 に答える