Суть проблемы такова:
1.Есть сайт,где пользователь добавляет свою анкету.В этой форме есть поле из нескольких checkbox'ов.Необходимо при выборе нескольких значений,все их занести в бд.Для этого создал колонку в бд 'uslugi' SET('a','b','c').
2.Есть форма:
<form action="" method="post">
<input name="uslugi" type="checkbox" value="1" />aaa<br />
<input name="uslugi" type="checkbox" value="2" />bbb<br />
<input name="uslugi" type="checkbox" value="3" />ccc<br />
</form>
3.Результат такой:сколько бы я не выбрал значений,в колонке "uslugi" делается запись типа (а,с)!
4.Почему не пойму!
Есть советы- пожалуйста напишите!Заранее благодарю!
Спустя 6 минут, 21 секунда (25.02.2010 - 23:16) Soldier Ghost написал(а):
<form action="" method="post">
<input name="uslugi[]" type="checkbox" value="1" />aaa<br />
<input name="uslugi[]" type="checkbox" value="2" />bbb<br />
<input name="uslugi[]" type="checkbox" value="3" />ccc<br />
</form>
А в php принимай так
for($i = 0; $i < count($_POST['uslugi']); $i++)
{
//и тут уже работаеш с $_POST['uslugi'][$i]
}
Спустя 12 часов, 53 минуты, 44 секунды (26.02.2010 - 12:10) Lelik36 написал(а):
Soldier Ghost
От души!!!Но для меня
если честно не понятно(что поделаешь- чайник!
).
Если не сложно,можно поподробнее!для наглядности код:
!!!
От души!!!Но для меня
for($i = 0; $i < count($_POST['uslugi']); $i++)
{
//и тут уже работаеш с $_POST['uslugi'][$i]
}
если честно не понятно(что поделаешь- чайник!

Если не сложно,можно поподробнее!для наглядности код:
if($ok)
{
if(!$category)
$error[] = NO_category;
if(!$natsional)
$error[] = NO_natsional;
if(!$name)
$error[] = NO_name;
if(!$vozrost)
$error[] = NO_vozrost;
if(!$rost)
$error[] = NO_rost;
}
if($ok && count($error) == 0)
{
mysql_query("INSERT INTO `". DB_PREFIX ."anketa`
SET
`category` = '". $category ."',
`natsional` = '". $natsional ."',
`name` = '". $name ."',
`vozrost` = '". $vozrost ."',
`rost` = '". $rost ."',
`uslugi` = '". $uslugi ."',
`info` = '". $info."'
") or die(SISTEM_ERROR);
header('location: '. $_SERVER['PHP_SELF']);
exit();
}

Спустя 31 минута, 43 секунды (26.02.2010 - 12:42) twin написал(а):
Не понял я чегото... А услуги где хранятся, в одной ячейке через запятую что ли?
Спустя 3 минуты, 53 секунды (26.02.2010 - 12:45) Soldier Ghost написал(а):
twin как я понял пока ещё не хранятся он хочет сделать так чтобы хранились )
Lelik36 тебе нужно чтоб через запятую они там хранились?
Lelik36 тебе нужно чтоб через запятую они там хранились?
Спустя 4 минуты, 47 секунд (26.02.2010 - 12:50) Lelik36 написал(а):
twin
Ну вроде как да!SET вроде это тип множества!Просто услуг будет более 50!Или создавать каждую ячейку под каждую услугу!?!?Вот и я не пойму!Как лучше сделать.Или надо создать отдельную таблицу 'uslugi'!!??Застопорился на этом!Хотя смотрел html-код подобных сайтов,там реализованно через одну ячейку.
Ну вроде как да!SET вроде это тип множества!Просто услуг будет более 50!Или создавать каждую ячейку под каждую услугу!?!?Вот и я не пойму!Как лучше сделать.Или надо создать отдельную таблицу 'uslugi'!!??Застопорился на этом!Хотя смотрел html-код подобных сайтов,там реализованно через одну ячейку.
Спустя 3 минуты, 38 секунд (26.02.2010 - 12:54) Lelik36 написал(а):
Soldier GhostСмотри!Это нужно для того,что бы в дальнейшем эта ячейка служила основным критерием выборки(поиска).Как бы классификатор,т.е. пользователь ищет анкету по нужным ему услугам,которые выбираются из бд.
Спустя 2 минуты, 18 секунд (26.02.2010 - 12:56) twin написал(а):
Ну хочешь одну - юзай implode()
А вообще все зависит от того, что дальше с ними делать, с услугами. Если просто вывести - одно. А если потом разбирать - другое.
Вот - успел написать. Если для поиска, как ключевые слова, то в принципе можно даже через пробел.
А вообще все зависит от того, что дальше с ними делать, с услугами. Если просто вывести - одно. А если потом разбирать - другое.
Вот - успел написать. Если для поиска, как ключевые слова, то в принципе можно даже через пробел.
Спустя 4 минуты (26.02.2010 - 13:00) Lelik36 написал(а):
вот так выглядит форма:
<form action="" method="post">
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td colspan="2"><h3><?php echo error($error); ?></td>
</tr>
<tr>
<td align="right"><h3>Национальность:</td>
<td>
<input name="natsional" type="text" size="15" value="<?php echo $natsional; ?>" /></td>
</tr>
<tr>
<td align="right"><h3>Имя: </td>
<td>
<input name="name" type="text" size="10" value="<?php echo $name; ?>" /></td>
</tr>
<tr>
<td align="right"><h3>Возрост: </td>
<td>
<input name="vozrost" type="text" size="2" value="<?php echo $vozrost; ?>" /></td>
</tr>
<tr>
<td align="right"><h3>Рост: </td>
<td>
<input name="rost" type="text" size="2" value="<?php echo $rost; ?>" /></td>
</tr>
<tr>
<td align="right"><h3>Вес: </td>
<td>
<input name="ves" type="text" size="2" value="<?php echo $ves; ?>" /></td>
</tr>
<tr>
<td align="right"><h3>Услуги: </td>
<td>
<input name="uslugi[]" type="checkbox" value="1" />ааа<br />
<input name="uslugi[]" type="checkbox" value="2" />ббб<br />
<input name="uslugi[]" type="checkbox" value="3" />ввв<br /></td>
</tr>
<tr>
<td align="right"><h3>О себе: </td>
<td>
<textarea name="info" rows="3" cols="30" value="<?php echo $info; ?>"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2"><input name="ok" type="submit" value="Добавить анкету" /></td>
</tr>
</table>
</form>
Спустя 2 минуты, 37 секунд (26.02.2010 - 13:03) twin написал(а):
Форма то зачем? С формой как раз все ясно. Ты потом будешь как использовать колонку? Выбирать все записи, в которых есть 1?
Спустя 1 минута, 51 секунда (26.02.2010 - 13:05) Lelik36 написал(а):
twin
Дело втом,что и выводиться они будут(просмотр анкет на странице) и искать по ним тоже нужно!
Дело втом,что и выводиться они будут(просмотр анкет на странице) и искать по ним тоже нужно!
Спустя 7 минут, 30 секунд (26.02.2010 - 13:12) Lelik36 написал(а):
twin
Для начало анкета должна появиться на странице (с перечисленными услугами).Но так как этих анкет будет очень много,для удобства делаю классификатор,т.е. будет форма со всеми услугами.Пользователь отмечает услуги,которые ему необходимы и "ок".Посылается запрос в бд и выбираются от туда все анкеты,где есть те услуги,которые перечислил пользователь при запросе!Вот такая суть!
Для начало анкета должна появиться на странице (с перечисленными услугами).Но так как этих анкет будет очень много,для удобства делаю классификатор,т.е. будет форма со всеми услугами.Пользователь отмечает услуги,которые ему необходимы и "ок".Посылается запрос в бд и выбираются от туда все анкеты,где есть те услуги,которые перечислил пользователь при запросе!Вот такая суть!

Спустя 15 минут, 55 секунд (26.02.2010 - 13:28) twin написал(а):
Ну так тогда
Только не вижу нигде обработки данных для запроса...
$uslugi = count($_POST['uslugi'])?$_POST['uslugi']:array();
mysql_query("INSERT INTO `". DB_PREFIX ."anketa`
SET
`category` = '". $category ."',
`natsional` = '". $natsional ."',
`name` = '". $name ."',
`vozrost` = '". $vozrost ."',
`rost` = '". $rost ."',
`uslugi` = '". implode(', ', $uslugi) ."',
`info` = '". $info."'
") or die(SISTEM_ERROR);
Только не вижу нигде обработки данных для запроса...
Спустя 11 минут, 15 секунд (26.02.2010 - 13:39) Lelik36 написал(а):
twin
С большим уважение отношусь к тебе.Постоянно юзаю твой личный сайт и курсы на этом форуме.Кстати оттуда взял регистрацию пользователей и по ней же делаю регистрацию анкет.Но не настолько я ещё знаток PHP,что бы понимать всё,что ты пишешь!
Эта переменная у меня описана в отдельном файле.
С большим уважение отношусь к тебе.Постоянно юзаю твой личный сайт и курсы на этом форуме.Кстати оттуда взял регистрацию пользователей и по ней же делаю регистрацию анкет.Но не настолько я ещё знаток PHP,что бы понимать всё,что ты пишешь!
$uslugi = count($_POST['uslugi'])?$_POST['uslugi']:array();
Эта переменная у меня описана в отдельном файле.
Цитата |
Только не вижу нигде обработки данных для запроса... |
А что конкретно!
Спустя 5 минут, 42 секунды (26.02.2010 - 13:45) Lelik36 написал(а):
то есть цикл!перечисление всех услуг!?!?Правильно понял!?!?

Спустя 2 минуты, 18 секунд (26.02.2010 - 13:47) twin написал(а):
Цитата |
А что конкретно! |
Цитата |
то есть цикл!перечисление всех услуг!?!?Правильно понял!?!? |
Нет. Не цикл. Эта функция собирает элементы массива в строку через разделитель (у тебя запятая).
Спустя 12 часов, 28 минут, 32 секунды (27.02.2010 - 02:16) Lelik36 написал(а):
спасибо всем!разобрался!
