<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Добовление данных в базу данных
25.09.2013 13:41:17 Добовление данных в базу данных Сообщение #1
bo4kov

bo4kov

Продвинутый

Продвинутый

Дата регистрации:
11.06.2012 11:21:31

Сообщений: 65

Как добавить в БД несколько выбранных чекбоксов? Как на сайте http://myrusakov.ru/editsubscribe.html (подписка на рассылку). У меня получается добавить только один чекбокс в БД , а вот два и больше не хочет(если я выбираю больше одного чекбокса, то в базу добавляеться один последний выбранный чекбокс). Как решить эту проблему?

Вот как я вывожу чекбоксы:

<?php foreach($categories as $item) {?>

<p>
<input type="checkbox" name="cat" value="<?=$item['title_en'];?>" />
<span><?=$item['title'];?></span>
</p>

<?php }?>
Профиль Ответить
25.09.2013 19:57:31 Добовление данных в базу данных Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Тут проблема, собственно, не в базе, а в том как получить POST всех чекбоксов. Нужно назвать их всех как-нибудь так cat[] (как массив), тогда достать их можно будет все через foreach($_POST['cat'] as $item) {...}
Профиль Ответить
25.09.2013 20:50:04 Добовление данных в базу данных Сообщение #3
bo4kov

bo4kov

Продвинутый

Продвинутый

Дата регистрации:
11.06.2012 11:21:31

Сообщений: 65

Вот как я вывожу чекбоксы:

<?php foreach($categories as $item) {?>

<p>
<input type="checkbox" name=cat[] value="<?=$item['title_en'];?>" />
<span><?=$item['title'];?></span>
</p>

<?php }?>


Все равно не получаеться добавить массив в базу данных. Например я выбираю три чекбокса, а добовляеться только последний выбранный. Пробовал использовать функцию implode(), но с ней выдает ошибку.
Профиль Ответить
26.09.2013 13:01:46 Добовление данных в базу данных Сообщение #4
bo4kov

bo4kov

Продвинутый

Продвинутый

Дата регистрации:
11.06.2012 11:21:31

Сообщений: 65

Кто-то может помочь? Может я не правильно вытаскиваю из POST в массив?

Вот код:

foreach ($_POST['cat'] as $item) {
$info['category'] = $item;
}


И потом добавляю массив $info в базу, но добавляться только один чекбокс(хотя выбираю три чекбокса). Как решить проблему?
Профиль Ответить
26.09.2013 18:17:57 Добовление данных в базу данных Сообщение #5
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Потеряли кавычки.
name="cat[]"
Профиль Ответить
26.09.2013 19:24:05 Добовление данных в базу данных Сообщение #6
bo4kov

bo4kov

Продвинутый

Продвинутый

Дата регистрации:
11.06.2012 11:21:31

Сообщений: 65

пробовал и с кавычками и без, та же проблема. как исправить ?
Профиль Ответить
26.09.2013 21:31:23 Добовление данных в базу данных Сообщение #7
fabrigas201

fabrigas201

Продвинутый

Продвинутый

Дата регистрации:
20.01.2012 13:08:31

Сообщений: 59

Попробуйте сериализовать данные. Что бы из трех чекбоксов получить строку. Точнее из массива. Вот пример написанный на коленке. Ориентируйтесь по нему. Если вы хотите записать все выбранные чекбоксы , то лучше сериализовать. Циклом вы сможете записать только одно значение чекбокса в ячейку. Если вам нужно чтобы каждое значение чекбокса записывалось в отдельную ячейку, то в цикле делайте INSERT.

<form action="#" method="POST">
<input type="checkbox" name="name[]" value="one"/>
<input type="checkbox" name="name[]" value="two"/>
<input type="checkbox" name="name[]" value="free"/>
<input type="submit" name="s"/>
</form>
<?php
// смотрим что пришло. Не обращать внимания что идет раньше проверки. Это просто пример.
echo "<pre>";
print_r($_POST['name']);
echo "</pre>";
// проверяем если есть записи
if(count($_POST['name'])){
//сериализуем
$ser = serialize($_POST['name']);
}

//Такую строку можно достать из БД. И из нее уже получит массив.

$arr = unserialize($ser);
if($arr){

echo "<ul>";
foreach($arr as $data){
echo "<li>". $data."</li>";
}
echo "</ul>";
}
?>


либо не делайте цикл а записывайте просто массив в базу целиком.несколько записей только массив.
Профиль Ответить
29.09.2013 19:06:27 Добовление данных в базу данных Сообщение #8
bo4kov

bo4kov

Продвинутый

Продвинутый

Дата регистрации:
11.06.2012 11:21:31

Сообщений: 65

сериализация мне не подходит, да и ошибки выдает, если просто добовлять массив $_POST в БД (c выбранными 3-мя чекбоксами), то в базу добавляеться слово Array, а не значения Value. Михаил как вы реализовали возможность добавления нескольких выбранных чекбоксов на своем сайте(в подписке)?
Профиль Ответить