#php #mysql
#php #mysql
Вопрос:
Я создал базу данных для колледжа, используя php и mysql; однако я хочу иметь возможность искать записи. Пока я могу искать «текстовую» информацию, такую как «имя» и «описание проекта»; но не могу заставить переключатели выполнять поиск учащихся по полу: M или F.
Форма поиска находится ниже:
<tr><td><?php _e("Home university");?>:</td><td><input type="text" name="place" value="<?php echo cG("place");?>" /></td></tr>
<tr><td><?php _e("Supervisor Name");?>:</td><td><input type="text" name="title" value="<?php echo cG("title");?>" /></td></tr>
<tr><td><?php _e("Project Description Keyword");?>:</td><td><input type="text" name="desc" value="<?php echo cG("desc");?>" /></td></tr>
Форма, в которой вводится информация:
if (strlen(cG("title"))>=MIN_SEARCH_CHAR){
$filter.= " and p.title like '%".cG("title")."%' ";
$order="p.insertDate Desc";
$advs=true;
}
if (strlen(cG("desc"))>=MIN_SEARCH_CHAR){
$filter.= " and p.description like '%".cG("desc")."%' ";
$order="p.insertDate Desc";
$advs=true;
}
Комментарии:
1. Я нахожу этот код нечитаемым.
2. Такие детали, как описание таблицы и т.д..
3. Я сомневаюсь
cG()
и_e()
из стандартной библиотеки. Не могли бы вы дать им более значимые имена или предоставить их определение?4. Я не вижу никаких переключателей во фрагменте формы.
Ответ №1:
Я попытался прочитать ваш код и высказал свое предположение.
Это должно работать или, по крайней мере, быть решением или подсказкой, в зависимости от того, какую работу выполняет функция «cG». Но вам все равно нужно изменить некоторый контент, чтобы он соответствовал вашему определению таблицы MySQL, и отладить его.
<tr>
<td>
Gender
</td>
<td>
<input type="radio" name="gender" value="Male" <?php if(cG("gender") == "Male") echo "checked="checked" ";?>/>Male<br />
<input type="radio" name="gender" value="Female" <?php if(cG("gender") == "Female") echo "checked="checked" ";?>/>Female
</td>
</tr>
В вашем PHP-скрипте:
if (strlen(cG("gender")) >= 4){
$filter.= " and YOUR_GENDER_COLUMN_NAME_IN_TABLE = '".cG("gender")."' ";
$order="p.insertDate Desc";
$advs=true;
}
Не забудьте проверить свой пользовательский ввод, чтобы избежать SQL-инъекций.
Комментарии:
1. Адриан Хоу, ты МОЛОДЕЦ!! просто лучший, и работает как шарм. добавьте меня в свою сеть!