I持っている3つのテーブル:挿入する前に2つの条件を確認するにはどうすればよいですか?
// Posts
+----+----------+---------------+-----------+
| id | title | content | id_author |
+----+----------+---------------+-----------+
| 1 | title1 | content1 | 1234 |
| 2 | title2 | content2 | 5678 |
+----+----------+---------------+-----------+
// Users
+----+--------+--------+
| id | name | active |
+----+--------+--------+
| 1 | jack | 1 |
| 2 | peter | 0 |
| 3 | John | 1 |
+----+--------+--------+
// Votes
+----+---------+---------+
| id | id_post | id_user |
+----+---------+---------+
| 1 | 32 | 1234 |
| 2 | 634 | 5678 |
| 3 | 352 | 1234 |
+----+---------+---------+
今、私はVotes
テーブルに新しい投票を挿入する前に2つの条件をチェックする必要があります。
- 作者のidと同じものを、私は合格していますか。
Posts.id_user = :author
(私はFKによってそれを行うことができると知っていますが、私は欲しくないです) - 現在のユーザーのアカウントがアクティブになっていますか?
INSERT INTO Votes (id_post,id_user) SELECT ?,? FROM Posts p WHERE p.id_user = :author limit 1;
がどのように私は、クエリに2つ目の条件
Users.active = 1
を追加することができます。Users.active = 1
はまた、ここに私のクエリですか?
EDIT:は実際に私は人々が(active = 0
)アクティブでは誰に投票することはできせてはいけないしようとしています。たとえば、SOが男性を禁止している場合、私は(現在のユーザー)禁止されているので、私はもう投稿できません。だから私は確信している$_SESSION['id']
は、クエリで使用する必要があります。
と、私は**現在のユーザー**がアクティブであるかどうかをチェックしようとしています。ですから、私は '$ _SESSION ['id']'をクエリに使わなければならないと思います。 – stack
私はその質問を編集しました。 'author'は投稿者、' user'は現在の投票者です。 –