<MyRusakov.ru />

Создание Интернет-магазина на PHP и MySQL

Создание Интернет-магазина на PHP и MySQL

Видеокурс "Создание Интернет-магазина на PHP и MySQL" - это уникальный курс по созданию Интернет-магазина с нуля. Особенностью данного курса является то, что создание идёт с самого начала, то есть от идеи. Далее создаётся дизайн всех необходимых страниц, после делается их вёрстка. Затем создаётся движок на PHP и MySQL, после делается Admin-панель и, наконец, готовый сайт размещается в Интернете.

Адрес созданного в этом курсе сайта: http://storedvd.ru

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

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

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

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

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

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

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

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

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

bo4kov

Продвинутый

Продвинутый

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

Сообщений: 63

Как добавить в БД несколько выбранных чекбоксов? Как на сайте 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

Сообщений: 63

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

<?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

Сообщений: 63

Кто-то может помочь? Может я не правильно вытаскиваю из 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

Сообщений: 63

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

fabrigas201

Продвинутый

Продвинутый

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

Сообщений: 58

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

Сообщений: 63

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