1

私は他の人の写真を好きになれるプロジェクトを構築しようとしています. あなたが知っているならTinderアプリのように。

今、私は次のように1枚の写真を取得します:

SELECT id, picture_path, profile_picture, username 
       FROM tusers 
       WHERE profile_picture IS NOT NULL
             AND settings LIKE '1,%' 
             AND sex = :sex
             AND last_visit BETWEEN CURDATE() - INTERVAL 21 DAY AND CURDATE()
             AND dob BETWEEN :dob - INTERVAL 5 YEAR AND :dob2 + INTERVAL 5 YEAR
LIMIT 1

ただし、すでに誰かの写真に「いいね」または「合格」している場合は、二度と表示したくありません。私はまだこの部分を行う方法がわかりません (現在、私は alreadyLiked() と alreadyPassed() 関数を持っていて、それらが true を返す場合にのみ header("Location") リダイレクトを行っていますが、好きなときに失敗します/すべての写真を渡しました)。

次の列を持つ別のテーブルがあります: iduser1_iduser2_idlikedpassedmatched

写真をいいねまたは渡すと、対応する列に 1 が挿入されます。

user1_idあなたのIDです。user2_id他人のIDです。

上記の情報を知っている場合、適切な人 (まだ気に入っていない、または合格していない) のみを表示するには、どのような種類のクエリ (またはロジック) を使用しますか?

4

2 に答える 2