Не могли бы Вы дать Мне простой пример!
Мне необходимо выводить checkbox(более 10) в шаблон.tpl затем пользователь проставляет галочки где нравится, все это передается в php где обрабатывается и в таблицу mysql записывается 1 или 0, начиная с определенного столбца? Каждое значение 1 или 0 должно записываться в свой стобец таблицы?
Подскажите пожалуйста, как такое можно реализовать?
Спустя 5 минут, 58 секунд (5.03.2012 - 12:29) Kuliev написал(а):
A_M
Используй массив
Потом получишь массив данных, обрабатывай их и пиши все в БД.
Используй массив
<input type="checkbox" name="check[]">
<input type="checkbox" name="check[]">
<input type="checkbox" name="check[]">
<input type="checkbox" name="check[]">
<!-- Сколько нужно боксов столько и ставь -->
Потом получишь массив данных, обрабатывай их и пиши все в БД.
Спустя 1 час, 2 минуты, 17 секунд (5.03.2012 - 13:31) A_M написал(а):
А как правильно написать обработчик, который будет записывать 1 или 0 в таблицу MySQL с к примеру 6 ого столбца? Для каждого элемента массива в свой столбец.
Спустя 31 минута, 55 секунд (5.03.2012 - 14:03) Kuliev написал(а):
Цитата (A_M @ 5.03.2012 - 14:31) |
А как правильно написать обработчик, который будет записывать 1 или 0 в таблицу MySQL с к примеру 6 ого столбца? Для каждого элемента массива в свой столбец. |
А у Вас самого есть какие нибудь наработки?
Спустя 5 минут, 50 секунд (5.03.2012 - 14:09) A_M написал(а):
Нет, Я пока вообще не уверен что можно так сделать! Как раз хотел у знающих людей узнать)
Спустя 16 минут, 20 секунд (5.03.2012 - 14:25) Kuliev написал(а):
Цитата (A_M @ 5.03.2012 - 15:09) |
Нет, Я пока вообще не уверен что можно так сделать! Как раз хотел у знающих людей узнать) |
Получаешь массив из формы, потом разбираешь массив и генеришь строку запроса на запись в БД, потом записываешь все в БД
//Данные из чекбоксов
$arr = array(
'0',
'1',
'0',
'1',
'0'
);
//Перебираем массив и записываем в БД
for($i = 0; $i < count($arr); $i++)
mysql_query("INSERT INTO `tbl` VALUE('','".intval($arr[$i])."')") or die(mysql_error());
Это всего лишь пример... На самом деле там еще нужно сделать кучу проверок + защита от SQL инъекций и т.д. Но это уже из области безопасности скрипта...
Спустя 1 час, 6 минут, 35 секунд (5.03.2012 - 15:32) Visman написал(а):
Цитата (Kuliev @ 5.03.2012 - 19:25) |
защита от SQL инъекций |
Сам же и сделал
Цитата (Kuliev @ 5.03.2012 - 19:25) |
intval($arr[$i]) |
Спустя 30 минут, 31 секунда (5.03.2012 - 16:02) Kuliev написал(а):
Цитата (Visman @ 5.03.2012 - 16:32) | ||||
Сам же и сделал
|
Привычка
Спустя 1 час, 8 минут, 43 секунды (5.03.2012 - 17:11) A_M написал(а):
Откликнитесь снова, возможно Я просто через чур глублю, но не могу никак написать масив состоящий из 1 и 0 после отправки формы!
В шаблоне у Меня динамический вывод checkbox:
а в обработчике
Скорее всего весь while написан не верно! Подскажите, как создать масив из 1 и 0, который можно будет записать в БД=)
В шаблоне у Меня динамический вывод checkbox:
<div style="text-align:left" >
<form action="" method="post">
<br />
<?php
while ($i <= $num_rows-1)
{
$ch[$i]=$i;
echo "<input type='checkbox' name='ch[$i]' value='$i' /> ch$i<br>";
$i++; }
?>
<input name="ok" type="submit" value="ОК"><br />
<br />
</form>
а в обработчике
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password="root"; // Mysql password
$db_name="chatlist"; // Database name
$tbl_name="test"; // Table name
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$num_rows = mysql_num_fields(mysql_query("SELECT * FROM $tbl_name"));
echo "Получено $num_rows рядов\n";
$i = 1;
include 'index.tpl';
if(isset($_POST["ok"])) {
$i=1;
while ($i <= $num_rows-1) {
if(isset($_POST["ch"][$i]))
echo $_POST["ch"][$i]."<br />";
mysql_query("INSERT INTO `$tbl_name` 'тут не знаю что писать'") or die(mysql_error());
$i++;
}
}
mysql_close();
Скорее всего весь while написан не верно! Подскажите, как создать масив из 1 и 0, который можно будет записать в БД=)
Спустя 1 день, 7 часов, 17 минут, 44 секунды (7.03.2012 - 00:29) A_M написал(а):
Люди, кто может, откликнитесь, помогите новечку сформировать массив из checkbox.
Спустя 9 часов, 20 минут, 40 секунд (7.03.2012 - 09:49) Kuliev написал(а):
A_M
Примерно так...
Можешь просто запустить этот скрипт без записи в БД, посмотри на с генерированный запрос.
Примерно так...
Можешь просто запустить этот скрипт без записи в БД, посмотри на с генерированный запрос.
if(isset($_POST['action']))
{
echo "<pre>\n";
print_r($_POST['checked']);
echo "</pre>\n";
$arr = array();
$j = 0;
for($i = 0; $i < 8; $i++)
{
if($_POST['checked'][++$j] == 1)
$arr[] = 1;
else
$arr[] = 0;
}
echo '<pre>';
print_r($arr);
echo '</pre>';
$sql = "INSERT INTO `table` VALUE('','".join("','",$arr)."')";
echo $sql;
//Пишим в БД
//mysql_query($sql) or die(mysql_error() .'<br>'. $sql);
}
$form = "<form method='POST'>\n";
//Рисуем чекбоксы
$j = 0;
for($i = 0; $i < 8; $i++)
$form .= ++$j . "<input type='checkbox' name='checked[". $j ."]' value='1'>\n" ."<br>\n";
$form .= "<input type='submit' name='action' value='SEND'>\n";
$form .= "</form>\n";
echo $form;
Спустя 1 час, 36 минут, 35 секунд (7.03.2012 - 11:26) Ramzil_Nixon написал(а):
Цитата (A_M @ 5.03.2012 - 09:23) |
в таблицу mysql записывается 1 или 0, начиная с определенного столбца? Каждое значение 1 или 0 должно записываться в свой стобец таблицы? |
Я тут ничего не понял
Спустя 7 часов, 59 минут, 50 секунд (7.03.2012 - 19:26) A_M написал(а):
Цитата |
Я тут ничего не понял |
Я имел ввиду то, что массив должен состоять не только из переданных checkboxов но и из не переданных. Просто а ячейке переданного должна стоять 1, а пустого 0! И запись должна осуществляться в таблицу начиная не с первого столбца, а с 5ого например и до 15 например если 10 checkbox! Ну к примеру если в первых пяти находиться проли id и все в этом роде, а начиная с 5ого будут настойки, которые подключаются checkами=)
Спустя 1 минута, 40 секунд (7.03.2012 - 19:27) A_M написал(а):
Kuliev, большое спасибо за помощь, сейчас изучу все что Вы Мне прислали и постараюсь решить Свою проблему=)