powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP+MySQL создание записей в зависимости от количества чекбоксов
25 сообщений из 37, страница 1 из 2
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205387
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, помогите пожалуйста решить задачу:
Есть форма, количество чекбоксов неизвестно - чекбокс уникальное занчение.
1. Проверить наличие галочек.
2. Если есть галочки, создать записи в зависимости от количества отмеченых
чекбоксов.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 if($button)
    {   
        if(!$POST['value3'])
          $info[] = "Не выбран ни чекбокс";
          if(!count($info)) 
         { 
         mysqlQuery("INSERT INTO `table` 
                          SET
                         `date_create` = '{$date}',
                         `checkbox`    = '". ($POST['value3']) ."',

                         ");
                         reDirect('page=writer','rem=writer');
                         }       
    }



я так понимаю нужно делать через фореч, что-то с массивами, если кто-то знает дайте подсказку
может быть как-то так?
Код: php
1.
2.
3.
4.
5.
foreach($_POST['array'] as $checkbox) {
mysqlQuery("INSERT INTO `table` 
                          SET
                         `date_create` = '{$date}',
                         `checkbox`    = '{$checkbox}',
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205399
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
<input name="check[box1]" value="xxx1">
<input name="check[box2]" value="xxx2">
<input name="check[box3]" value="xxx3">



Код: php
1.
2.
3.
4.
5.
6.
if(isset($_POST['check'])) {
    foreach($_POST['check'] as $value) {
        $value = (int)$value;
        mysql_query('INSERT INTO ...{$value}')
    }
}



или в один запрос
Код: php
1.
2.
3.
4.
5.
6.
if(isset($_POST['check'])) {
    foreach($_POST['check'] as $value) {
        $value = (int)$value;
    }
    mysql_query('INSERT INTO table_name VALUES(' . implode('),(', $_POST['check']) . ')';
}
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205401
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во втором случае не правильно написал:
Код: php
1.
2.
3.
4.
5.
6.
if(isset($_POST['check'])) {
    foreach($_POST['check'] as $key=>$value) {
        $_POST[$key] = (int)$value;
    }
    mysql_query('INSERT INTO table_name VALUES(' . implode('),(', $_POST['check']) . ')';
}
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205412
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettВо втором случае не правильно написал:
Код: php
1.
2.
3.
4.
5.
6.
if(isset($_POST['check'])) {
    foreach($_POST['check'] as $key=>$value) {
        $_POST[$key] = (int)$value;
    }
    mysql_query('INSERT INTO table_name VALUES(' . implode('),(', $_POST['check']) . ')';
}



Спасибо!
А как сделать, ведь у меня форма подключается в шаблон таким образом, и я не знаю
какое количестов"check[box?]"

Код: php
1.
2.
3.
4.
5.
while ($rows = mysql_fetch_assoc($res))
              {
                $rows['slovo'] = createBBtags($rows['slovo']);
                $content .= parseTpl($forma, $rows);
                }



Код: html
1.
2.
3.
4.
это форма $forma
<label>
<input type="checkbox" name="check[box1]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
</label>
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205413
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Маша и,

P.S. ведь она выглядит вот так если много чекбоксов
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
<label>
<input type="checkbox" name="check[box1]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
</label><label>
<input type="checkbox" name="check[box1]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
</label><label>
<input type="checkbox" name="check[box1]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
</label><label>
<input type="checkbox" name="check[box1]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
</label>..............................
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205415
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что у вас имена одинаковые?
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205422
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HettА что у вас имена одинаковые?
получается так, а как мне быть?
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205423
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Маша иHettА что у вас имена одинаковые?
получается так, а как мне быть?
может сделать так?
Код: html
1.
<input type="checkbox" name="<?php echo $tpl_slovo; ?>" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205604
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, есть какие-нибудь варианты?
Мне кажется что тут нужно работать с массивом, помогите, кто в курсе дела?
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38205650
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
name="checkbox[]"
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38206835
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett,

Работает, но немного не так, почему-то создает четыре записи
вместо двух. Почему так происходить?

Код: html
1.
2.
3.
<label>
<input type="checkbox" name="array1[<?php echo $tpl_site; ?>]" value="<?php echo $tpl_site; ?>" checked><?php echo $tpl_site; ?>
</label>




Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if(isset($_POST['array1'])) {
    foreach($_POST['array1'] as $key=>$value) {
        $_POST[$key] .= (int)$value;
 
         mysqlQuery("INSERT INTO `book_total` 
                          SET
                         `date_create` = '{$date}',
                         `user_id`    = '". ($POST['value1']) ."',
                         `sitew`    = '{$value}',
                         ");
        }   } 
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38206840
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if(isset($_POST['array1'])) {
    foreach($_POST['array1'] as $key=>$value) {
        $_POST[$key] = (int)$value;
 
         mysqlQuery("INSERT INTO `book_total` 
                          SET
                         `date_create` = '{$date}',
                         `user_id`    = '". ($POST['value1']) ."',
                         `sitew`    = '{$value}',
                         ");
        }   } 



Там точка после кей была лишняя, всё равно четыре записи вместо двух.
Что мне делать, как мне быть?
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38209016
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Маша и,

Кто нибудь, подскажите почему созданные записи дублируются?
Посылаю два параметра, а создается четыре записи, две из которых повторяются - дублируются.
Почему так происходит, и как с этим бороться?

<input type="checkbox" name="check[array1]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
</label><label>
<input type="checkbox" name="check[array1]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if(isset($_POST['array1'])) {
    foreach($_POST['array1'] as $key=>$value) {
        $_POST[$key] = (int)$value;
 
         mysqlQuery("INSERT INTO `book_total` 
                          SET
                         `date_create` = '{$date}',
                         `user_id`    = '". ($POST['value1']) ."',
                         `sitew`    = '{$value}',
                         ");
        }   } 
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38209023
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Маша и,
Чуть-чуть исправила, но всё равно та же беда

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<input type="checkbox" name="array1["<?php echo $tpl_slovo; ?>]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>
</label><label>
<input type="checkbox" name="array1["<?php echo $tpl_slovo; ?>]" value="<?php echo $tpl_slovo; ?>" checked><?php echo $tpl_slovo; ?>


if(isset($_POST['array1'])) {
    foreach($_POST['array1'] as $key=>$value) {
        $_POST[$key] = (int)$value;
 
         mysqlQuery("INSERT INTO `book_total` 
                          SET
                         `date_create` = '{$date}',
                         `user_id`    = '". ($POST['value1']) ."',
                         `sitew`    = '{$value}',
                         ");
        }   }
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38209176
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маша иЧуть-чуть исправила, но всё равно та же беда

Код: php
1.
<input type="checkbox" name="array1["<?php echo $tpl_slovo; ?>]" value="<?php echo $tpl_slovo; ?>" checked>

Один атрибут правильно пишете, второй неправильно, третий опять правильно.... Кавычки!

По теме: var_dump($_POST) для начала. До и после.
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38209734
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleМаша иЧуть-чуть исправила, но всё равно та же беда

Код: php
1.
<input type="checkbox" name="array1["<?php echo $tpl_slovo; ?>]" value="<?php echo $tpl_slovo; ?>" checked>

Один атрибут правильно пишете, второй неправильно, третий опять правильно.... Кавычки!

По теме: var_dump($_POST) для начала. До и после.

Да не, инпут правильный
<input type="checkbox" name="array1[<?php echo $tpl_site; ?>]" value="<?php echo $tpl_site; ?>" checked><?php echo $tpl_site; ?>

Кавычки не причем. Меня вот эта конструкция смущает, что-то в ней не так
или чего-то в ней не хватает, ума не приложу. Я уже и так и эдак, ни идет ни как. :(

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
if(isset($_POST['array1'])) {
    foreach($_POST['array1'] as $key=>$value) {
        $_POST[$key] = (int)$value;
 
         mysqlQuery("INSERT INTO `book_total` 
                          SET
                         `date_create` = '{$date}',
                         `user_id`    = '". ($POST['value1']) ."',
                         `sitew`    = '{$value}',
                         ");
        }   }



c var_dump попробую
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38209868
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создавайте чекбоксы
Код: html
1.
<input type="checkbox" name=chk[] value="<?php echo $tpl_slovo; ?>" checked>

value="<?php echo $tpl_slovo; ?>" -> так делать нельзя, но для начала простительно :)

Код: php
1.
2.
3.
4.
5.
6.
foreach ($POST['chk'] as $position => $value) {
   $val = intval($value);
   INSERT INTO table SET 
            date_create = now(),
            checkbox    = $val 
}
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38209873
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
<input type="checkbox" name=chk[] value="<?php echo $tpl_slovo; ?>" checked>

value="<?php echo $tpl_slovo; ?>" -> так делать нельзя, но для начала простительно :)

Код: php
1.
2.
3.
4.
5.
6.
foreach ($_POST['chk'] as $position => $value) {
   $val = intval($value);
   INSERT INTO table SET 
            date_create = now(),
            checkbox    = $val 
}

опечатался в POST
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38209985
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SmeL_md
Код: html
1.
<input type="checkbox" name=chk[] value="<?php echo $tpl_slovo; ?>" checked>

value="<?php echo $tpl_slovo; ?>" -> так делать нельзя, но для начала простительно :)

Код: php
1.
2.
3.
4.
5.
6.
foreach ($_POST['chk'] as $position => $value) {
   $val = intval($value);
   INSERT INTO table SET 
            date_create = now(),
            checkbox    = $val 
}

опечатался в POST

Всё сделала так, создалось 4 записи, вместо двух и вместо данных вписался '0'.
Что-то здесь не так?
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38210184
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маша иc var_dump попробуюНу так и что кажет?
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38210224
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleМаша иc var_dump попробуюНу так и что кажет?
Вот что выдает
Код: php
1.
array(3) { ["form"]=> array(4) { ["value1"]=> string(3) "777" ["value7"]=> string(3) "255" ["value8"]=> string(3) "0.1" ["value2"]=> string(3) "798" } ["array1"]=> array(2) { [0]=> string(7) "site1.ru" [1]=> string(9) "site2.ru" } ["кнопка"]=> string(25) "заявка" }



вот там два параметра "site1.ru" и "site2.ru" так как их два разных должно создаться две записи, а создаётся два по два (1,2 и 1,2), то есть четыре вместо двух.
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38210225
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Маша и,

ой и в самом низу вот это, похоже что форма отсылается два раза? Может такое быть?

Код: php
1.
array(5) { ["form"]=> array(4) { ["value1"]=> string(3) "777" ["value7"]=> string(3) "255" ["value8"]=> string(3) "0.1" ["value2"]=> string(3) "798" } ["array1"]=> array(2) { [0]=> string(7) "site1.ru" [1]=> string(9) "site2.com" } ["gobet"]=> string(25) "заявка" [0]=> int(0) [1]=> int(0) }
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38210343
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероятно, из-за этогоавтор
Код: php
1.
$_POST[$key] = (int)$value;
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38210564
Маша и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkleВероятно, из-за этогоавтор
Код: php
1.
$_POST[$key] = (int)$value;



Убрала всё, оставила только это. Записи всё равно дублируется.
Если посылаю один параметр то создается две одинаковые записи,
если посылаю два разных параметра то создается четыре записи.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if(isset($POST['array1'])) {
        foreach($_POST['array1'] as $value) {
 
         mysqlQuery("INSERT INTO `book_total` 
                          SET
                         `date_create` = '{$date}',
                         `user_id`    = '". ($POST['value1']) ."',
                         `sitew`    = '{$value}',
                         ");
        }   }
...
Рейтинг: 0 / 0
PHP+MySQL создание записей в зависимости от количества чекбоксов
    #38210756
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маша и,
Покажите свой исходник.
пока на него смотрят, гляньте нету ли у вас триггеров на вставку
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP+MySQL создание записей в зависимости от количества чекбоксов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]