<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

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

Подписавшись по 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')";
Именно в обратные, а не просто в одиночные (не ', а `)!
Профиль Ответить