В этой статье я расскажу, как сделать поиск по группам с такими параметрами как точный и приблизительный поиск с поиском по названию, описанию и лидеру группы. Сделать это очень просто: несколько строчек кода на php, пару sql-запросов и несколько полей в html.
Выполним пару действий шаг за шагом:
- Открыть: browse_groups.php
Найти
Подсказка: Возможно, здесь приведена не вся строка, а лишь ее часть.else { $where .= " AND se_groups.group_groupcat_id='{$groupcat['groupcat_id']}'"; $groupsubcat = $groupcat; $groupcat = $database->database_fetch_assoc($database->database_query("SELECT groupcat_id, groupcat_title FROM se_groupcats WHERE groupcat_id='{$groupcat['groupcat_dependency']}' LIMIT 1")); } } }
Добавить после
Подсказка: Добавьте эти строки на новой строке после ранее найденных строк.
//GROUPS SEARCH if(isset($_POST['submit']) && $_POST['field_search'] != '') { if($_POST['type_search2'] == 0) $search_f = "group_title"; elseif($_POST['type_search2'] == 1) $search_f = "group_desc"; else { $user_tb = $database->database_fetch_assoc($database->database_query("SELECT user_id FROM se_users WHERE user_fname LIKE '%" . $_POST['field_search'] . "%' LIMIT 1")); $_POST['field_search'] = $user_tb[user_id]; $search_f = "group_user_id"; } if($_POST['type_search'] == 1) $search_f2 = "= '" . $_POST['field_search'] . "'"; else $search_f2 = "LIKE '%" . $_POST['field_search'] . "%'"; $where .= " AND se_groups.{$search_f} {$search_f2}"; } //END GROUPS SEARCH
- Открыть: browse_groups.tplНайти
<div style='text-align: center; line-height: 12pt; margin-top: 5px;'> {lang_print} <select class='group_small' name='s' onchange="window.location.href='browse_groups.php?v={$v}&s='+this.options[this.selectedIndex].value;"> <option value='group_totalmembers DESC'{if $s == "group_totalmembers DESC"} SELECTED{/if}>{lang_print}</option> <option value='group_datecreated DESC'{if $s == "group_datecreated DESC"} SELECTED{/if}>{lang_print id=2000130}</option> </select> </div> </div>
Добавить после
Подсказка: Добавьте эти строки на новой строке после ранее найденных строк.
<form action='browse_groups.php' method='post'> <div style='margin-top: 10px; padding: 10px; background: #F2F2F2; border: 1px solid #BBBBBB; font-weight: bold;'> <div style='text-align: center; line-height: 12pt;'>Поиск групп:</div> <div style='text-align: left; line-height: 12pt; margin-top: 5px; border: 1px solid #BBBBBB;'> <input type='radio' name='type_search' value='1' CHECKED>Точный поиск <br> <input type='radio' name='type_search' value='0'>Приблизительный </div> <div style='text-align: left; line-height: 12pt; margin-top: 5px; border: 1px solid #BBBBBB;'> <input type='radio' name='type_search2' value='0' CHECKED>По названию <br> <input type='radio' name='type_search2' value='1'>По описанию <br> <input type='radio' name='type_search2' value='2'>По лидеру </div> <div style='text-align: center; line-height: 12pt; margin-top: 5px; '> <input type='input' name='field_search' value='' style='width: 180px;'> <br><br> <input type='submit' name='submit' value='Выполнить поиск'> </div> </div> </form>
После выполнения этих простых действий на странице обзора групп появятся новые поля для лучшего поиска групп по различным критериям.
Автор: Евтеев Евгений Александрович