PHP-mysql: использование переключателей при поиске

#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. Адриан Хоу, ты МОЛОДЕЦ!! просто лучший, и работает как шарм. добавьте меня в свою сеть!