<MyRusakov.ru />

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

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

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

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

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

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

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

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

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

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

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

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

Как правильно записать значения чекбоксов
14.11.2011 23:31:39 Как правильно записать значения чекбоксов Сообщение #1
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, вот дорабатываю форму регистрации, и столкнулся с небольшой проблемой. Нужно значения выбранных чекбоксов записать в базу, а затем выводить в разделе редактирования страницы отмеченные чекбоксы. Сам вывод я примерно понимаю как сделать если не ошибаюсь - через explode().
А вот как правильно записать их в базу? Через implode() что ли? Нужно именно формирование в строку, где разделитель будет идти ", "
Профиль Ответить
15.11.2011 00:45:34 Как правильно записать значения чекбоксов Сообщение #2
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, в форме регистрации я сделал отображение в виде цикла.
Вот код
<?php
$query = mysql_query("SELECT styles FROM config";
$row = mysql_fetch_array($query);
$style = $row['styles'];
$explode = explode(', ', $style);
foreach ($explode as $a) {
echo $a . "<input type = 'checkbox' name = '" . $a . "' value = 'yes'><br />";
}
?>

Как теперь при регистрации можно записать все эти данные в базу данных, непосредственно в виде строки? То, что implode() там понадобиться - это понятно, но не вводить же все передаваемые POST Вручную, ведь как то возможно это сделать автоматически, например как нибудь обратно в массив преобразовать?
Профиль Ответить
15.11.2011 09:30:49 Как правильно записать значения чекбоксов Сообщение #3
Admin

Admin

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

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

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

Сообщений: 3063

Нужны функции implode() и explode(). А в базе хранить в таком виде: "1,4,5,19,12" - это value checkbox. Я же ведь так понимаю, у Вас что-то выводится из базы. Допустим, у меня на странице подписки на обновления выводятся доступные разделы, и у каждого checkbox есть value, который равен id раздела. Поэтому по цифрам я всегда могу узнать, на какие разделы подписан пользователь.
Профиль Ответить
15.11.2011 23:33:05 Как правильно записать значения чекбоксов Сообщение #4
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Спасибо) Пойду делать))))
Профиль Ответить
16.11.2011 07:01:49 Как правильно записать значения чекбоксов Сообщение #5
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, по id сделал вывод полей, только вот подскажите пожалуйста, как значения принять в скрипте обработчике?
Вот сама форма <form name = "form1" action = "obr.php" method = "get">
<input type = "text" name = "name">Имя<br />
<?php
$dbconnect = mysqli_connect('localhost', 'root','' ,'testing') or die('eRROR!!!!');
$query = "SELECT * FROM styles";
$result = mysqli_query($dbconnect, $query) or die("Ошибка!!!!";
while ($row = mysqli_fetch_array($result)) {
echo "<input type = 'checkbox' name = 'style' value = '" . $row['id'] . "'>" . $row['name'] . "<br />";
}
mysqli_close($dbconnect);
?>
<input type = "submit" value = "Добавить">
</form>

Как возможно передать все значения в скрипт обработчик?
Профиль Ответить
16.11.2011 09:18:01 Как правильно записать значения чекбоксов Сообщение #6
Admin

Admin

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

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

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

Сообщений: 3063

Все значения можно передать, если поставить name="styles[]"
Профиль Ответить
16.11.2011 18:03:00 Как правильно записать значения чекбоксов Сообщение #7
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Я пережелал на этот вариант, вот только теперь вопрос в том, как их принять в обработчике? Подскажите пожалуйста
Профиль Ответить
16.11.2011 18:10:02 Как правильно записать значения чекбоксов Сообщение #8
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Извиняюсь, разобрался, функция implode() помогла))))
Профиль Ответить
16.11.2011 18:30:05 Как правильно записать значения чекбоксов Сообщение #9
brussens

brussens

Мега-мастер

Мега-мастер

Дата регистрации:
11.10.2011 22:50:07

Сообщений: 438

Михаил, подскажите пожалуйста, в чём может быть проблема? Не хочет записывать данные в БД.
Вот скрипт - обработчик
<?php
$name = $_POST['name'];
$asd = $_POST['style'];
$reo = implode(',', $asd);
$dbconnect = mysqli_connect('localhost', 'root','' ,'testing') or die('eRROR!!!!');
$query = "INSERT INTO testik (like) VALUES ('$reo')";
mysqli_query($dbconnect, $query) or die("Ошибка записи!!!!";
mysqli_close($dbconnect);
?>

И сам скрипт формы
<form name = "form1" action = "obr.php" method = "post">
<input type = "text" name = "name">Имя<br />
<?php
$dbconnect = mysqli_connect('localhost', 'root','' ,'testing') or die('eRROR!!!!');
$query = "SELECT * FROM styles";
$result = mysqli_query($dbconnect, $query) or die("Ошибка!!!!";
while ($row = mysqli_fetch_array($result)) {
echo "<input type = 'checkbox' name = 'style[]' value = '" . $row['id'] . "'>" . $row['name'] . "<br />";
}
mysqli_close($dbconnect);
?>

<input type = "submit" value = "Добавить">
</form>
Профиль Ответить
16.11.2011 18:33:33 Как правильно записать значения чекбоксов Сообщение #10
Admin

Admin

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

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

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

Сообщений: 3063

В запросе ошибка:
INSERT INTO testik (like) VALUES ('$reo')";
Дело в том, что LIKE - это зарезервированная команда, поэтому если в таблице так называется поле, то его необходимо в запросах заключать в обратные кавычки:
INSERT INTO testik (`like`) VALUES ('$reo')";
Именно в обратные, а не просто в одиночные (не ', а `)!
Профиль Ответить