Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как организовать поиск ?
 
 автор: Neznajka   (27.05.2009 в 20:31)   письмо автору
 
 

Всем доброго времени суток!

В общем у меня такая проблема.

Есть таблица, которая содержит пускай будет 5 полей: одно из полей- object другие поля - услуги которые этот обьект оказывает(либо не оказывает. т е поля заполняются значениями да/нет) usluga1, usluga2, usluga3. Есть форма с радиокнопками в которой пользователю предлагается выбрать одну из услуг, чтоб узнать сколько объектов и какие обьекты предоставляют эту услугу. Как это сделать? Помогите кто знает!Спасибо!!!

Такое вообще возможно?

  Ответить  
 
 автор: sl1p   (28.05.2009 в 03:08)   письмо автору
 
   для: Neznajka   (27.05.2009 в 20:31)
 

SELECT COUNT(*) as count, `object` FROM `table` WHERE `usluga1` = 1 and `usluga2` = 0 ...

думаю мысль понятна)

  Ответить  
 
 автор: Trianon   (28.05.2009 в 09:35)   письмо автору
 
   для: sl1p   (28.05.2009 в 03:08)
 

проверяли?

  Ответить  
 
 автор: Neznajka   (28.05.2009 в 13:18)   письмо автору
 
   для: Trianon   (28.05.2009 в 09:35)
 

Вы как человек более опытный в этом вопросе, подскажите в каком направление копать.

Какие у меня мысли.

Допустим, что пользователь выбрал из трех услуг usluga2. В обработчике сначала идет проверка того что выбрал пользователь. Я это сделал так:


if (isset($_POST['usluga1'])) {$a = $_POST['usluga1']; if ($_POST['usluga1'] == '') {unset($_POST['usluga1']); }}

if (isset($_POST['usluga2'])) {$a = $_POST['usluga2']; if ($_POST['usluga2'] == '') {unset($_POST['usluga2']); }}

if (isset($_POST['usluga3'])) {$a = $_POST['usluga3']; if ($_POST['usluga3'] == '') {unset($_POST['usluga3]); }}

Потом нужно делать запрос. вот тут то проблемы и начинаются

$sql = 'SELECT * FROM `web_services` WHERE '.$a."='да' ";
$result = mysql_query($sql);
if(!$result)
exit( "Ошибка в запросе $sql<br>" . mysql_error());

Почему то я думаю что этот запрос не совсем то что надо по условию

  Ответить  
 
 автор: Trianon   (30.05.2009 в 14:18)   письмо автору
 
   для: Neznajka   (28.05.2009 в 13:18)
 

>Вы как человек более опытный в этом вопросе, подскажите в каком направление копать.

Для начала - сделать базу с таблицами так, чтобы услуги можно было добавлять, не изменяя структуру таблиц ( т.е. не добавляя столбцы)
Понадобится таблица объектов, таблица услуг и таблица сервисов, соединяющая первые две.


Для вашей же схемы

>Допустим, что пользователь выбрал из трех услуг usluga2. В обработчике сначала идет проверка того что выбрал пользователь. Я это сделал так:
>
>
>if (isset($_POST['usluga1'])) {$a = $_POST['usluga1']; if ($_POST['usluga1'] == '') {unset($_POST['usluga1']); }}
>if (isset($_POST['usluga2'])) {$a = $_POST['usluga2']; if ($_POST['usluga2'] == '') {unset($_POST['usluga2']); }}
>if (isset($_POST['usluga3'])) {$a = $_POST['usluga3']; if ($_POST['usluga3'] == '') {unset($_POST['usluga3]); }}

Этих трех строк я не понял. То есть вообще.


>Потом нужно делать запрос. вот тут то проблемы и начинаются
>
>$sql = 'SELECT * FROM `web_services` WHERE '.$a."='да' ";
>$result = mysql_query($sql);
>if(!$result)
> exit( "Ошибка в запросе $sql<br>" . mysql_error());
>
>Почему то я думаю что этот запрос не совсем то что надо по условию

Ну почему же. Если в $a окажется имя поля с признаком оказания услуги - запрос вполне логичен.
Вы только проверьте, что оно там и вправду окажется.

  Ответить  
 
 автор: Neznajka   (01.06.2009 в 22:12)   письмо автору
 
   для: Trianon   (30.05.2009 в 14:18)
 

>Допустим, что пользователь выбрал из трех услуг usluga2. В обработчике сначала идет проверка того что выбрал пользователь. Я это сделал так:
>
>
>if (isset($_POST['usluga1'])) {$a = $_POST['usluga1']; if ($_POST['usluga1'] == '') {unset($_POST['usluga1']); }}
>if (isset($_POST['usluga2'])) {$a = $_POST['usluga2']; if ($_POST['usluga2'] == '') {unset($_POST['usluga2']); }}
>if (isset($_POST['usluga3'])) {$a = $_POST['usluga3']; if ($_POST['usluga3'] == '') {unset($_POST['usluga3]); }}

>Этих трех строк я не понял. То есть вообще.

В этих строках я передал следующий смысл. Если пользователь выбрал usluga2 то в $a помещается значение value uslugi2.......а usluga1 и usluga3 останутся не у дел. В общем это проверка того что выбрал пользователь.

Интересно, а возможно ли решить эту задачу не создавая эти три таблицы? или Ваше знание априорно?

  Ответить  
 
 автор: Trianon   (01.06.2009 в 22:37)   письмо автору
 
   для: Neznajka   (01.06.2009 в 22:12)
 

>>Допустим, что пользователь выбрал из трех услуг usluga2. В обработчике сначала идет проверка того что выбрал пользователь. Я это сделал так:
>>
>>
>>if (isset($_POST['usluga1'])) {$a = $_POST['usluga1']; if ($_POST['usluga1'] == '') {unset($_POST['usluga1']); }}
>>if (isset($_POST['usluga2'])) {$a = $_POST['usluga2']; if ($_POST['usluga2'] == '') {unset($_POST['usluga2']); }}
>>if (isset($_POST['usluga3'])) {$a = $_POST['usluga3']; if ($_POST['usluga3'] == '') {unset($_POST['usluga3]); }}
>
>>Этих трех строк я не понял. То есть вообще.
>
>В этих строках я передал следующий смысл. Если пользователь выбрал usluga2 то в $a помещается значение value uslugi2.......а usluga1 и usluga3 останутся не у дел. В общем это проверка того что выбрал пользователь.

А удалять элементы массива $_POST зачем ?
А что помещается в $a, если пользователь не выбрал ничего?




>Интересно, а возможно ли решить эту задачу не создавая эти три таблицы?

Что за три таблицы были созданы?

>или Ваше знание априорно?

Я Вас не понимаю, при чем с каждой строкой всё глубже.

  Ответить  
 
 автор: Neznajka   (01.06.2009 в 22:43)   письмо автору
 
   для: Trianon   (01.06.2009 в 22:37)
 

>Для начала - сделать базу с таблицами так, чтобы услуги можно было добавлять, не изменяя структуру таблиц ( т.е. не добавляя столбцы)
>Понадобится таблица объектов, таблица услуг и таблица сервисов, соединяющая первые две.

на мой взгляд здесь речь идет о трех таблицах или я что то не так воспринимаю?

  Ответить  
 
 автор: Neznajka   (01.06.2009 в 23:02)   письмо автору
 
   для: Neznajka   (01.06.2009 в 22:43)
 

видимо мне надо линейную алгебру повторить(((

  Ответить  
 
 автор: Trianon   (01.06.2009 в 23:26)   письмо автору
 
   для: Neznajka   (01.06.2009 в 22:43)
 

>>Понадобится таблица объектов, таблица услуг и таблица сервисов, соединяющая первые две.

>на мой взгляд здесь речь идет о трех таблицах или я что то не так воспринимаю?

Ах Вы про это...
При жестко зафиксированном наборе услуг - можно и без трех.

  Ответить  
 
 автор: Neznajka   (28.05.2009 в 13:03)   письмо автору
 
   для: sl1p   (28.05.2009 в 03:08)
 

А если пользователь выбрал usluga2?

  Ответить  
 
 автор: Neznajka   (01.06.2009 в 23:04)   письмо автору
 
   для: Neznajka   (27.05.2009 в 20:31)
 

так как же это все осуществить?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования