передача из формы в БД php/mysql

132
01 октября 2019, 03:10

Возникла некая проблема при создание формы. То есть, при заполнении таблицы нужно создать в БД таблицу с названием, которое содержит переменная из таблицы. Проверку на существующую таблицу проходит успешно, но далше не заходит. Не могу понять в чем проблема. КОД ОБРАБОТЧИКА

if (isset($_POST['oa-submit'])) {
include_once 'dbh_oa.php';
$cl_name = mysqli_real_escape_string($conn, $_POST['name']);
$nick = mysqli_real_escape_string($conn, $_POST['nick']); //переменная-имя таблицы
$position = mysqli_real_escape_string($conn, $_POST['position']);
$category = mysqli_real_escape_string($conn, $_POST['category']);
$gang = mysqli_real_escape_string($conn, $_POST['gang']);
if (empty($cl_name) || empty($nick) || empty($gang) || empty($position) || empty($category)) { //проверка на заполненность
    header('Location: ../view/adduser.php?signup_oa=empty'); //редирект при ошибке
    exit();
}else{
    $sqli = mysqli_query($conn, "SHOW TABLES FROM ".$dBName); //сделано для поиска
    $quntity = mysqli_num_rows($sqli);
    while ($rows = mysqli_fetch_array($sqli)) {//передача массива таблиц
        for ($i=0; $i < $quntity ; $i++) { 
            if ($rows[$i] == $nick) {  //если таблица с таким именем уже существует - редирект
                header('Location: ../view/adduser.php?signup_oa=exists');
                exit();
            }
        }
        //до сих пор работает, а дальше - запрос на создание таблицы. ошибку не выдает, но и таблицу создать не может. просто перекидывает на файл обработчика и тупик.
        $sql = "CREATE TABLE ".$nick." (clerk_id INT(3) AUTO_INCREMENT NOT NULL PRIMARY KEY, clerk_category INT(3) NOT NULL, clerk_name VARCHAR(100) NOT NULL, clerk_position VARCHAR(100) NOT NULL, clerk_gang VARCHAR(100) NOT NULL, clerk_notes TEXT(10000) NULL);";
        $result = mysqli_query($conn, $sql);
        if ($result) {
            $sql_oa = "INSERT INTO ".$nick." (clerk_category, clerk_name, clerk_position, clerk_gang, clerk_notes) VALUES ('$category', '$cl_name', '$position', '$gang', '');";
            $result1 = mysqli_query($conn, $sql_oa);
            header('Location: ../view/adduser.php?signup_oa=success');
            exit();

           }
        }
    }
}

КОД ФОРМЫ HTML

<section id="content2">
        <div class="wrap-main">
            <h3>Добавление сотрудника в отдел ОA</h3>
            </br>
            <form action="../Dev/signup.inc.php" method="POST">
                <label class="pure-material-textfield-outlined">
                    <input type="text" name="name" placeholder=" " class="okk"><span>ФИО</span>
                </label>
                <label class="pure-material-textfield-outlined">
                    <input type="text" name="nick" placeholder=" " class="okk"><span>Ник
                    </span>
                </label>
                <label class="pure-material-textfield-outlined">
                    <select size="1" name="position">
                        <option value="" disabled selected>Должность</option>
                        <option value="Оператор ООА">Оператор ООА</option>
                        <option value="Оператор ОТП">Оператор ОТП</option>
                   </select>
                </label>
                <label class="pure-material-textfield-outlined">
                    <select size="1" name="category">
                        <option value="" disabled selected>Категория</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                   </select>
                </label>
                <label class="pure-material-textfield-outlined">
                    <select size="1" name="gang">
                        <option value="" disabled selected>Смена</option>
                        <option value="1 Q4">1 Q4</option>
                        <option value="2 Sazeke">2 Sazeke</option>
                        <option value="3 Ночная">3 Ночная</option>
                        <option value="4 Пятидневная">4 Пятидневная</option>
                   </select>
                </label>
                    <button class="pure-material-button-contained" type="submit" name="oa-submit">Добавить</button>
            </form>
        </div>
      </section>
Answer 1

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

Таблица должна одна. При вводе данных в форму в неё добавляются строки.

READ ALSO
DOMDocument как добавить ноду в начало списка потомков?

DOMDocument как добавить ноду в начало списка потомков?

Мне нужно после открывающего тега добавить ноду, проблема в том что внутри head уже есть потомкиКаким способом это можно сделать?

140
Notice : Undefined index: uid in

Notice : Undefined index: uid in

Проблема состоит в том, что при авторизации на сайте ошибка исчезает (тк

137
Ошибка curl_setopt() , что не так?

Ошибка curl_setopt() , что не так?

Подклчюаюсь к api, данные обратно получа , но с ошибкой: curl_setopt() expects exactly 3 parameters, 2 given

106