私は2つのテーブルを持っています
members
=======
id
f_name // get these values.
l_name
email
friends
=======
to
from
ユーザーのI'dは値$member_idです。これが「to」または「from」に存在する場合、その行の他の値を返さないようにしたいので、友達以外の人だけが表示されます。
メンバーがデータベースを検索して、電子メールまたは名前で友達を追加できるようにするページを作成しています。
フレンズテーブルの「to」列または「from」列のいずれにもユーザーIDのレコードがないメンバーからすべての行を返したいのですが。
私は最も基本的なmysqlの実行方法を知っていますが、結合は私にとって問題です。誰かが私を助けてくれて、それを少しでも説明してくれるなら、私はそれらを書く方法を本当に理解していません!
My query now:
$query = "SELECT * FROM members WHERE f_name LIKE '%" . $word . "%' OR l_name LIKE '%" . $word . "%' OR mc_name LIKE '%" . $word . "%' OR email LIKE '%" . $word . "%' LIMIT 10";
//Where $word is the search term.
変更されたクエリ
SELECT * FROM members WHERE id NOT IN (SELECT to FROM friends WHERE frm=$member_id) AND $member_id NOT IN (SELECT frm FROM friends WHERE to=$member_id) AND f_name LIKE '%" . $word . "%' OR l_name LIKE '%" . $word . "%' OR mc_name LIKE '%" . $word . "%' OR email LIKE '%" . $word . "%' LIMIT 10