Как вставить данные из HTML-формы из поля ввода флажка в таблицу MySQL == >> решено, закрыто - PullRequest
0 голосов
/ 10 ноября 2019

Приветствую всех !! Я искал ответ на мою проблему в существующих потоках здесь на стеке потока. Я не нашел ответ. Моя проблема заключается в вставке новых данных из html-формы из элемента <input type = checkbox>, другое поле ввода html-формы php-скрипт в таблицу mysql вставлено правильно, без ошибок.

Первый фрагмент html-формы - это мой текущий флажок (с болеепараметры):

<input  id="element_5" type="checkbox"  name= "skupiny_rp[]" value="C" checked> C <br>
<input  id="element_5" type="checkbox"  name= "skupiny_rp[]" value="CE" > CE <br>
<input  id="element_5" type="checkbox"  name= "skupiny_rp[]" value="D"> D <br>
<input  id="element_5" type="checkbox"  name= "skupiny_rp[]" value="DE"> DE <br>

Я использовал массив для хранения дополнительных значений из флажка. Моя идея заключалась в следующем: я хотел использовать процедуру, которую я использовал при вставке этих значений в CSV-файл - эта процедура работает, здесь, когда вставка в таблицу MySQL не работает. Этот массив skupiny_rp[] Я преобразовал это поле, используя php функцию implode () php, и поместил его в csv. Но вставить в таблицу mysql функцию implode для mysql не работает.

Вот фрагмент кода php и sql: все поля ввода html-формы перед вставкой в ​​таблицу mysql, обработанные с использованием mysqli_real_escape_string()

здесь готовим sql запрос

$query = "INSERT INTO skoleni (jmeno, prijmeni, narozen, ulice_cp,
          mesto, psc, zeme, cislo_rp, skupina_rp,email,telefon, 
          termin_skoleni)
          VALUES ('$jmeno', '$prijmeni', '$narozen', '$ulice_cp', 
                  '$mesto', '$psc','$zeme', '$cislo_rp', '$skupina_rp', 
                  '$email', '$telefon', '$termin')";

А вот выполнение запроса и его проверка на успешность:

if (mysqli_query($SQLconn,$query)):
    echo "Záznam vytvořen.";
    close($SQLconn);
else:
    echo "Vytvoření záznamu selhalo." ;
endif;

Этот исходный код работает почти корректно. Но отображение значений из флажка html кажется мне неразрешимым, может кто-нибудь посоветовать, как отобразить в таблице mysql все выбранные значения из skupiny_rp[] в таблице MySQL.

Вот таблица конфигурации в Mysql:

CREATE TABLE skoleni (
 id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
 registrovan TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 jmeno VARCHAR(10) NOT NULL,
 prijmeni VARCHAR(30) NOT NULL,
 narozen VARCHAR(20) NOT NULL,
 ulice_cp VARCHAR(255) NOT NULL,
 mesto VARCHAR(50) NOT NULL,
 psc VARCHAR(5) NOT NULL,
 zeme VARCHAR(50) NOT NULL,
 cislo_rp VARCHAR(10) NOT NULL,
 skupina_rp VARCHAR(10) NOT NULL,
 email VARCHAR(50) NOT NULL,
 telefon VARCHAR(9) NOT NULL,
 termin_skoleni VARCHAR(50) NOT NULL)

1 Ответ

0 голосов
/ 10 ноября 2019

Предполагая, что значения "прибыли" в вашем PHP-сценарии - и значения флажков skupiny_rp[] были объединены с implode() в переменную PHP skupina_rp, тогда, возможно, следующий insert с использованием«Подготовленное заявление» будет вам полезно? (Код не проверен!)

if ($stmt = mysqli_prepare($SQLconn, 
   "INSERT INTO skoleni (jmeno, prijmeni, narozen, ulice_cp,
       mesto, psc, zeme, cislo_rp, skupina_rp,email,telefon, 
       termin_skoleni) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)" )) {
    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "ssssssssssss", $jmeno, $prijmeni,
       $narozen, $ulice_cp, $mesto, $psc, $zeme, $cislo_rp, 
       $skupina_rp, $email, $telefon, $termin);    
    /* execute query */
    mysqli_stmt_execute($stmt);
    if (mysqli_stmt_affected_rows($stmt)) { echo "Záznam vytvořen.";}
    else { echo "Vytvoření záznamu selhalo.";}
    // close($SQLconn);
}

И - как я уже упоминал в своем комментарии: ваш столбец skupina_rp может быть недостаточно широким для хранения строки, содержащей все значения флажков.

Теперь я проверил вышеизложенное в небольшой скрипке, см. Здесь: http://phpfiddle.org/main/code/yywg-c6dz

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...