Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012 Откуда: Тольятти
Помог: 2 раз(а)
[+]
Помогите пожалуйста, есть массив checkbox'ов надо засунуть в базу все его элементы в базу пробовал с помощью цикла пробовал сначала с помощью foreach не хочит заполнятся ругается (((
как пройтись по всем элементам и засунуть их в базу? =-)
----- Самое лучшее решение проблемы самое простое
Panoptik
Отправлено: 17 Февраля, 2012 - 10:47:15
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
в каком виде массив? и в какой вид нужно это всё преобразовать?
----- Just do it
imper
Отправлено: 17 Февраля, 2012 - 10:52:42
Частый гость
Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012 Откуда: Тольятти
Помог: 2 раз(а)
[+]
Panoptik пишет:
в каком виде массив? и в какой вид нужно это всё преобразовать?
Короче вот такие чек боксы у меня
<input type="checkbox" name="dop_yslygi[]" value="Фотоотчёты" id="" />
<input type="checkbox" name="dop_yslygi[]" value="Портфолио" id="" />
<input type="checkbox" name="dop_yslygi[]" value="Сертификаты" id="" />
......
......
вот я весь массив взял
if(isset($_POST['dop_yslygi']))
{
$dop_yslygi = $_POST['dop_yslygi'];
$count = count($dop_yslygi); //это количество элементов массива, для цикла.
}
вот я пытаюсь засунуть его в базу(массив) в таблице 9 полей я уже в предыдущем запросе всё остальное засунул а вот это не хочет засовываться(( говорит что у меня 9 полей а я засовываю одно значение,
if($count != 0)
{
for ($i=0; $i < $count; $i++)
{
$query = "INSERT INTO zakaz(dop_yslygi) VALUES". "($dop_yslygi[i])";
if(!mysql_query($query)) echo mysql_error();
}
----- Самое лучшее решение проблемы самое простое
Panoptik
Отправлено: 17 Февраля, 2012 - 10:55:21
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012 Откуда: Тольятти
Помог: 2 раз(а)
[+]
таааакс, всё попробовал, на вот это
$query = "INSERT INTO zakaz(dop_yslygi) VALUES". "({$dop_yslygi[i]})";
ответил что Column count doesn't match value count at row 1
а на это $query = "INSERT INTO zakaz(dop_yslygi) VALUES"."(".$dop_yslygi[i].")";
вообще фатальную ошибку вывел((
может я в запросе к базе ошибся где то?)
----- Самое лучшее решение проблемы самое простое
Viper
Отправлено: 17 Февраля, 2012 - 11:11:14
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
Ну и как вы себе представляете такой запрос
INSERT INTO `zakaz` (dop_yslygi) VALUES (1234567890)
Вы пытаетесь в одно поле залить данные из массива чекбоксов при это VALUES у вас даже не разделяются никак, а должны быть через запятую и взяты в одинарные кавычки.
поменял i на $i + сделал не $dop_yslygi[$i] а '$dop_yslygi[$i]' и всё начало работать
я тут хотел уже кричать от радости пока не заметил что у меня масив чек боксов выделенных заносится не сразу весь а по очереди и получается что к примеру у id-1 одно значение чек бокса , а у id-2 тоже другое значение а мне надо что бы оба этих значения попали в id-1
Я не умею объяснять, но вроде как смог, надеюсь вы поняли что я имел ввиду? =-) (Добавление)
Viper пишет:
Ну и как вы себе представляете такой запрос
INSERT INTO `zakaz` (dop_yslygi) VALUES (1234567890)
Вы пытаетесь в одно поле залить данные из массива чекбоксов при это VALUES у вас даже не разделяются никак, а должны быть через запятую и взяты в одинарные кавычки.
да, верно сказано, глупо я запрос составил, спасибо, я это учёл и исправил)))
----- Самое лучшее решение проблемы самое простое
sKaa
Отправлено: 17 Февраля, 2012 - 11:41:24
Частый посетитель
Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011 Откуда: Россия г. Нижний Новгород
Помог: 25 раз(а)
[+]
Viper пишет:
Ну и как вы себе представляете такой запрос
INSERT INTO `zakaz` (dop_yslygi) VALUES (1234567890)
Это реально используя битовые маски
допустим
INSERT INTO `zakaz` (dop_yslygi) VALUES ('10101');
можно легко приспособить к ряду чекбоксов где 1 = enabled, 0 = disabled.
Хотя я сильно сомневаюсь что автор именно это имел ввиду )))
Panoptik
Отправлено: 17 Февраля, 2012 - 11:45:17
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
сама идея использовать массив чекбоксов - не очень хороша, когда нет четкой идентификации за что каждый из них отвечает. просто считать количество - это скорее всего не та задача, которую нужно было решить
----- Just do it
imper
Отправлено: 17 Февраля, 2012 - 11:48:57
Частый гость
Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012 Откуда: Тольятти
Помог: 2 раз(а)
[+]
нееее, битовые маски мне тут явно не помогут, мне нужно, лично по мое идиотской логике,
что бы сам запрос был не в цикле а $i была в запросе может из запроса ссылаться на $i?
&$i
----- Самое лучшее решение проблемы самое простое
Panoptik
Отправлено: 17 Февраля, 2012 - 11:50:50
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
вы можете привести структуру базы и внятно обяснить что и для чего вы хотите сделать. может вам подскажут более правильное решение, или найдут выход из вашей ситуации, а тыкать пальцем в небо, можно сколько угодно
----- Just do it
imper
Отправлено: 17 Февраля, 2012 - 11:57:54
Частый гость
Покинул форум
Сообщений всего: 134
Дата рег-ции: Февр. 2012 Откуда: Тольятти
Помог: 2 раз(а)
[+]
Окей щас всё будет =-)
CREATE TABLE IF NOT EXISTS `zakaz` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`type_kontakta` varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`nomer_kontakta` varchar(40) NOT NULL,
`name_famil` varchar(65) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`type_site` varchar(25) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`date` varchar(20) NOT NULL,
`dop_text` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`sites` tinytext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`dop_yslygi` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=75 ;
вот моя структура
вот я беру из выделенных чекбоксов массив
if(isset($_POST['dop_yslygi']))
{
$dop_yslygi = $_POST['dop_yslygi'];
$count = count($dop_yslygi);
echo $count;
}
Тут я добавляю информацию
$query = "INSERT INTO zakaz VALUES".
"('NULL','$variant','$nomer_kontakta','$name_famil','$typesite','$date','$text1','$text2',' ')";
$result = mysql_query($query);
if(!$result)
{
echo "Сбой при вставке данных в базу" . mysql_error() . "<br /><br />";
}
а тут я пытаюсь добавить в поле dop_yslygi все выделенные чекбоксы которые в массиве
$dop_yslygi
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.