|
|
|
| Всем доброго времени суток!
В общем у меня такая проблема.
Есть таблица, которая содержит пускай будет 5 полей: одно из полей- object другие поля - услуги которые этот обьект оказывает(либо не оказывает. т е поля заполняются значениями да/нет) usluga1, usluga2, usluga3. Есть форма с радиокнопками в которой пользователю предлагается выбрать одну из услуг, чтоб узнать сколько объектов и какие обьекты предоставляют эту услугу. Как это сделать? Помогите кто знает!Спасибо!!!
Такое вообще возможно? | |
|
|
|
|
|
|
|
для: Neznajka
(27.05.2009 в 20:31)
| |
SELECT COUNT(*) as count, `object` FROM `table` WHERE `usluga1` = 1 and `usluga2` = 0 ...
|
думаю мысль понятна) | |
|
|
|
|
|
|
|
для: sl1p
(28.05.2009 в 03:08)
| | проверяли? | |
|
|
|
|
|
|
|
для: 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());
Почему то я думаю что этот запрос не совсем то что надо по условию | |
|
|
|
|
|
|
|
для: 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 окажется имя поля с признаком оказания услуги - запрос вполне логичен.
Вы только проверьте, что оно там и вправду окажется. | |
|
|
|
|
|
|
|
для: 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 останутся не у дел. В общем это проверка того что выбрал пользователь.
Интересно, а возможно ли решить эту задачу не создавая эти три таблицы? или Ваше знание априорно? | |
|
|
|
|
|
|
|
для: 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, если пользователь не выбрал ничего?
>Интересно, а возможно ли решить эту задачу не создавая эти три таблицы?
Что за три таблицы были созданы?
>или Ваше знание априорно?
Я Вас не понимаю, при чем с каждой строкой всё глубже. | |
|
|
|
|
|
|
|
для: Trianon
(01.06.2009 в 22:37)
| | >Для начала - сделать базу с таблицами так, чтобы услуги можно было добавлять, не изменяя структуру таблиц ( т.е. не добавляя столбцы)
>Понадобится таблица объектов, таблица услуг и таблица сервисов, соединяющая первые две.
на мой взгляд здесь речь идет о трех таблицах или я что то не так воспринимаю? | |
|
|
|
|
|
|
|
для: Neznajka
(01.06.2009 в 22:43)
| | видимо мне надо линейную алгебру повторить((( | |
|
|
|
|
|
|
|
для: Neznajka
(01.06.2009 в 22:43)
| | >>Понадобится таблица объектов, таблица услуг и таблица сервисов, соединяющая первые две.
>на мой взгляд здесь речь идет о трех таблицах или я что то не так воспринимаю?
Ах Вы про это...
При жестко зафиксированном наборе услуг - можно и без трех. | |
|
|
|
|
|
|
|
для: sl1p
(28.05.2009 в 03:08)
| | А если пользователь выбрал usluga2? | |
|
|
|
|
|
|
|
для: Neznajka
(27.05.2009 в 20:31)
| | так как же это все осуществить? | |
|
|
|