私は2つのテーブルに1つは返信があり、2つ目は追加された友達があります。両方のテーブルには、友人(受信者)のIDと返信用のポスターのフィールドがあります。私は内部のこれらのテーブルをreceiver_idとadded_friendで結合します。ここで、 'friends'のusernameは$ _SESSION ['user'](ログされた人物)です。クエリの後に受け取ったのは、返信だけです(両当事者に表示されます)。返信を返信することはできません(両方の当事者は他の返信を見ることができません)。コードは論理的なようです...ありがとうございます。SQLコマンドで特定のクエリが呼び出されない
CREATE TABLE IF NOT EXISTS `friends` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(128) character set utf8 NOT NULL,
`added_friend` varchar(128) character set utf8 NOT NULL,
`friendname` varchar(128) character set utf8 NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
--
CREATE TABLE IF NOT EXISTS `reply` (
`rep_id` int(11) NOT NULL auto_increment,
`reply_comm` text character set utf8 NOT NULL,
`reply_poster` varchar(128) character set utf8 NOT NULL,
`reply_poster_id` int(11) NOT NULL,
`receiver_name` varchar(128) character set utf8 NOT NULL,
`receiver_id` int(11) NOT NULL,
`reply_date` date default NULL,
PRIMARY KEY (`rep_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
構造は以下のようになります。
テーブル '友人':
username | added_friend
=====================
mike | 10
rob | 20
はテーブル '返信':
reply_poster | receiver_id
=========================
mike | 20
rob | 10 <- added friend id
は、PHPのSQLコマンドはこれです:
$repcheck2 = mysqli_query($connect,"SELECT * FROM reply INNER JOIN friends ON
receiver_id = added_friend WHERE username = '".$_SESSION['user']."' ORDER BY rep_id
DESC ");
ログインしたときに両方の当事者が返信と投稿を表示する必要があります($ _SESSION ['user'])。返信が自分の投稿返信/コメントのみを返すことはできません。ありがとうございました...
ありがとう、私はこれを試してみましょう.. –
これは正しいです(どこに 'reply'.receiver_id' =' friends'.added_friend')あなたの答えの小さな間違いに気を付けてください。それ以外は、それはうまくいきません。私は他の部分が私の返信を見ることができないことを意味します。 –
これはこれです:$ _SESSIONを取り除くと、問題はなくなり、返信は見られますが、すべての返信は特定のユーザに送られません - その理由は私が返信をフィルタリングする$ _SESSIONを使用した理由です - 奇妙なことにはうまくいきません。しかし正しく投稿を送信します(私は双方が自分の返信ではなく自分の返信を見ることができます) –