0

自分のウェブページの検索エンジンを作りたいのですが。mysqlデータベースにいくつかのテーブルがあり、ユーザーが

Table users
id  name        age country     vip profile_image
1   nick        23  sweden      1   yes
2   michael     20  germany     0   no
3   laura       19  usa         1   yes
4   gary        33  china       1   yes

Table online
id  user_id     online
1   1             1
2   2             1 
3   4             1

user_idはusersテーブルのidに接続されています

Now i have checkboxes
[ ] Those which are online
[ ] Those which are vip
[ ] Those with profile image

私のページをPHPでコーディングしていて、特定のチェックボックスがオンになっている場合に特定の検索をSQLクエリに含める方法を理解しようとしています。ここにはたくさんのオプションがあります。たとえば、チェックボックスがチェックされていない場合、オンラインにあるものを検索する場合、2番目のテーブルに移動するにはどうすればよいですか?

ここで私の主張を理解していただければ幸いです。誰かが私を助けてくれて、php&sqlクエリの実用的な例を教えてくれることを本当に望んでいます。

Cheerz!

4

2 に答える 2

1

まず、チェックされているチェックボックスを確認する必要があります。次に、その情報に基づいてPHPでMySQLクエリを作成する必要があります。すべてのチェックボックスで、チェックする必要のある情報を検討する必要があります。データベースが適切に作成されている場合、2つのオプションが相互に影響するという問題はほとんどありません。情報がusers-tableにある場合は、where-clauseに行を書き込むだけです。テーブルをusers-tableに結合して情報を取得する必要がある場合は、それも行う必要があります。これが例です

$query = "";
$query .= "SELECT users.* FROM users";
if ($include_online == 1) {
  $query .= " LEFT JOIN online ON online.user_id = users.id";
}
$query .= " WHERE";
if ($include_vip == 1) {
 $query .= " users.vip = 1 AND";
}
if ($include_image == 1) {
  $query .= " users.profile_image = 'yes' AND";
}
if ($include_online == 1) {
  $query .= " online.online = 1 AND";
}
$query .= " users.name LIKE '%".$search_string."%'";
于 2012-12-09T16:16:12.813 に答える
0

次のようなクエリを作成する必要があります。

SELECT users.name, users.age, users.country
FROM users
LEFT JOIN online ON user.id = online.user_id
WHERE ((user.vip = 1) && (online.online = 1))
于 2012-12-09T16:15:42.377 に答える