私は自分のウェブサイトで検索エンジンに取り組んでいます。ユーザーはGET
、URLにaを付けて送信された基準を追加できます。
ユーザーがたとえば1つの基準を選択すると、次のようになります。
localhost/search.php?course=1&price=&name=
選択できる基準は3つあるので、ご覧のとおり、彼はCOURSEのみを選択しました。
次に、基準に従ってデータベースから選択する必要があるため、コードは次のようになります。
if ($_GET['price'] > 0 && $_GET['name'])
{
$search_price = $_GET['price'];
$search_name = $_GET['name'];
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id' AND price < $search_price AND name LIKE '%$search_name%'");
}
elseif ($_GET['price'] > 0)
{
$search_price = $_GET['price'];
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id' AND price < $search_price");
}
elseif ($_GET['name'])
{
$search_name = $_GET['name'];
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id' AND name LIKE '%$search_name%'");
}
else
{
$result2 = mysql_query("SELECT id, name, price, views, userid, type, anonymous FROM files WHERE course='$course_id'");
}
while ($row2 = mysql_fetch_assoc($result2))
{
.....
しかし、これは正しい方法ではありません。最終的にユーザーが10の基準を選択できる場合、これは非常に長いコードになるためです。
これを修正するにはどうすればよいですか?