Jump to content
  • 0

Занесение чекбоксов в БД


Defroing
 Share

Question

<form method="POST" action= "action_handler.php" id="form">
    <section class="table_1">
        <table class="iksweb">
            <tbody>
                <tr>
                    <td rowspan="3"><b>История компании «Mc donald's»</b>
                        <h3 class="the">Кто основал компанию «Mc donald's»?</h3>   
                        <section class="conteiner">
                            <div class="checkbox">
                                <input type="checkbox" class="i-6" id="i6" value="0" name="formDoor[]">
                                <label for="i6" tabindex="12">Роналд Макдоналд</label>     
                            </div>
                            <div class="checkbox">
                                <input type="checkbox" class="i-6" id="i7" value="0" name="formDoor[]">
                                <label for="i7" tabindex="13">Рэй Крок</label>     
                            </div>
                            <div class="checkbox">
                                <input type="checkbox" class="i-6" id="checkbox_68" value="1" name="formDoor[]">
                                <label for="checkbox_68" tabindex="14">Братья Дик и Мак Макдоналд</label>     
                            </div>
                            <div class="checkbox">
                                <input type="checkbox" class="i-6" id="checkbox_170" value="0" name="formDoor[]">
                                <label for="checkbox_170" tabindex="14">Клинт Иствуд</label>     
                            </div>
                            <div class="out-block out-6"></div>
                        </section>
                     </td>     
                </tr>
            </tbody>
        </table>
    <div class="dsw">
        <button class="b-6" tabindex="11" id="btn-1" type="submit" name="formSubmit">Отправить</button>
    </div>  
</form>
<?php
  mysql_connect("localhost", "root", "");
  mysql_select_db('olala') or die(mysql_error());
   
      if(isset($_GET['submit'])){
          
          $arr=$_GET;
          
  foreach ($arr as $key => $value)
  {
      $reg="/^check/";//отбираю нужные элементы 
      if( preg_match ($reg,$key ))
      {
          //$new_mass[]=$arr[$key];
          //print_r($new_mass);
          echo $arr[$key];
          $sql_1="INSERT INTO `table_one` (`name`) VALUES('$arr[$key]')";
          mysql_query($sql_1) or die(mysql_error());
   
      }
  }
      
      }
?>

 Создаю опросник и хочу, чтобы чекбоксы заносились в БД(таблицу пока не создавал). Хотелось узнать на счёт php кода, сможете подсказать, что в нём не так (дать какие нибудь советы). В openserver опросник пока не выкладывал.

Edited by Defroing
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 1

1. в html вы отметили правильный ответ, что для опросника/теста на мой взгляд очень не очень :)
2. в вашем случае достаточно было бы
 

mysql_connect("localhost", "user", "password");
mysql_select_db('olala') or die(mysql_error());
if(isset($_GET['submit']))
{
  $insert = '';
  foreach($_GET['formDoor'] as $key=>$val)
  {
      if(!empty($insert)) $insert .= ',';
      $insert .= '("'.$val.'")';
  }
  $insert = 'INSERT INTO `table_one` (`name`) VALUES '.$insert;
  mysql_query($sql_1) or die(mysql_error());
}

 

Link to comment
Share on other sites

  • 0
04.06.2021 в 14:35, Switch74 сказал:

1. в html вы отметили правильный ответ, что для опросника/теста на мой взгляд очень не очень 🙂
2. в вашем случае достаточно было бы
 


mysql_connect("localhost", "user", "password");
mysql_select_db('olala') or die(mysql_error());
if(isset($_GET['submit']))
{
  $insert = '';
  foreach($_GET['formDoor'] as $key=>$val)
  {
      if(!empty($insert)) $insert .= ',';
      $insert .= '("'.$val.'")';
  }
  $insert = 'INSERT INTO `table_one` (`name`) VALUES '.$insert;
  mysql_query($sql_1) or die(mysql_error());
}

А вот такой вариант может подойти?


<?php
$server = 'localhost';
$user = 'root';
$password = 'gJnhf76K';
 
$dblink = mysql_connect($server, $user, $password);
 
if($dblink)
echo 'Соединение установлено.';
else
die('Ошибка подключения к серверу баз данных.');
 
$database = 'ten45';
$selected = mysql_select_db($database, $dblink);
if($selected)
echo ' Подключение к базе данных прошло успешно.';
else
die(' База данных не найдена или отсутствует доступ.');
 
echo $_GET['formDoor[]']; // Вернёт 1
echo $_GET['Door[]']; // Вернёт 0
 
$cb1 = (!empty($_GET['formDoor[]'])) ? (int) $_GET['formDoor[]'] : 0; // Если чекбокс выбран - кидаем туда его значение, иначе - 0
$cb2 = (!empty($_GET['Door[]'])) ? (int) $_GET['Door[]'] : 0;
 
mysql_query("UPDATE `tutorial_users` SET `value` = $formDoor[] WHERE `option` = 'formDoor[]' "); // Обновляет 1-е значение в БД
mysql_query("UPDATE `tutorial_users` SET `value` = $Door[] WHERE `option` = 'Door[]' "); // Обновляет 2-е значение в БД
?>

 

 

Link to comment
Share on other sites

  • 0
7 часов назад, Switch74 сказал:

не пойму что за массив Door и что этот вариант должен сделать
еще замечание, попробуйте пересесть с mysql на mysqli

массив Door - это имя для чекбокса.

То есть при выборе варианта, он возвращал 0 (не правильный вариант). 

И вот ещё, вы мне написали код, где есть mysql. Почему именно с mysql?

Link to comment
Share on other sites

  • 0

код с mysql написали вы, я брал ваш код и немного переделывал
а вот почему я советовал пересесть с mysql на mysqli - новая функция с лучшим функционалом

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By stonelabs
      Всем привет!

      Наша компания (https://stone-labs.com/) ищет команды (!) разработчиков для реализации ряда заказных проектов. Местоположение не важно - мы практикуем удаленную работу.
       
      Обязательные требования:
      Laravel или Symfony frameworks jQuery (UI), JavaScript, Ajax, Bootstrap MySQL REST API, опыт внедрения Third-party APIs английский на уровне чтения и понимания технической документации опыт в разработке веб приложений и их архитектуры с нуля корректное использование git & pull request flow работа в дневное время во временной зоне UTC +3  
      Будет плюсом, если у вашей команды есть:
      опыт с GitLab CI/CD, Jenkins опыт с MySQL Cluster, MongoDB, PostgreSQL, Redis опыт с Vue.js опыт Linux администрирования, SSH, Nginx, DevOps  
      Если вам интересно сотрудничество, пожалуйста, пишите на наш ящик wanted@stone-labs.com 
    • By seoww
      Доброго времени суток. Я не сильно знающий веб-разработчик, но учусь. Начал создавать интернет магазин. Написал код самого сайта, посмотрел видео как делаются интернет-магазины и теперь не могу разобраться с PhpMyAdmin. Я не понимаю как она взаимодействует с сайтом. В интернете погуглил, так ничего дельного найти и не смог. Помогите пожалуйста.
      P.S сильно в меня камни не кидайте, я только учусь 
      Всем добра!
    • By Gmansurov
      Нужно отправить текст на сайт, не знаю как это сделать и не могу найти форумы по этим темам. Google Cloud Platform. Помогите пожалуйста.
    • By Full-R
      Рекомендую выгодный хостинг Sprinthost, который поддерживает все версии PHP и Node.js.
      Производительность достаточная и есть возможность докупать процессные сервера. Например, для запуска ресурсоемких скриптов, которые садят сервер задницей в лужу для всех пользователей пока процесс кубаторит.
      Sprinthost.ru
      Цены спиртхоста уравновешенные, а качество обслуживания все таки повыше чем у конкурентов. Самый дешевый хостинг обходится в 118 рублей в месяц.
      Не банят при единоразовых всплесках нагрузки и дают ресурсов вплоть до потолка сервера на 1-2 часа без переплат.
      Можно регистрировать домены через reg.ru и по ночам отхватывать вкусные домены без переплат(я пол часа назад отхватил домен из 4х букв в зоне net за 1000 рублей).
      На серверах стоит Redhat или CentOS.
      Также дают бесплатные сертификаты SSL Let's Encrypt.
      Бэкап каждый день.
      Панель управления хостингом своя и очень удобная. Нет ни каких голимых запутанных опций.
    • By MultiGramen
      Есть тестовый сайт: http://multigramen.ru/
      Между картинкой и меню создался какой-то белый отступ, и я не могу удалить его, чтобы элементы приклеились друг ко другу:

      Если вырезать следующий код:
      <a class="header_logo"> <img class="header_photo" src="img/header.png" width="100%"> </a> то меню приклеивается и всё в порядке, хотя в CSS, по сути, нет отступов, которые мешались бы:
       
      .header_logo { flex:0 0 40px; } .header_photo { display:none; }
      Сайт имеет мобильную версию. Код сейчас разбит на два медиа-запроса: max-width:767px и min-width : 768px

      Помогите понять, как убрать этот пробел, не затронув другие элементы. Уже несколько дней ковыряюсь с этой проблемой, даже в коде запутался..
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy