Как вставить динамическое значение в базу данных MySQL
У меня есть форма, которая содержит имя, номер телефона, адрес, личную информацию.... и т. д
и я дал возможность пользователю, какие поля он хочет вставить, используя флажок
поле, которое проверило apper на другой странице, например: если он выбрал имя и адрес
... тогда имя и адрес присваиваются.... так как я могу сделать свою базу данных mysql..... так что если кто-то выберет все опции в моей форме.... моя таблица mysql должна сохранить все данные...
так что в основном мой вопрос заключается в том, как я могу динамически создать свою базу данных mysql... поэтому, если пользователь выбирает 2 параметра, он может вставить 2 значения, а если пользователь выбирает все параметры, он может сохранить все значения.....
4 ответа
Прежде всего, вы должны уточнить, является ли их обязательное поле во всех ваших полях, и я думаю, что это должно быть какое-то обязательное поле, в противном случае произойдет, если пользователь просто отправит форму, он вставит пустую строку в базу данных, поэтому ясно, какое поле вы хотите сделать обязательным
Затем установите все остальные флажки и создайте таблицу базы данных со всеми именами полей со значением по умолчанию null.
и использовать массив для вставки данных в базу данных каждый раз, таким образом, вам не нужно каждый раз записывать имя поля и его значение
< form >
< input type="text" name="detail['name']" value="" / >
< input type="text" name="detail['age']" value="" / >
< input type="text" name="detail['email']" value="" / >
.
.
.
.
< / form >
что вы получите на другом конце
$detail = $_POST['detail'];
теперь все значения, отправленные из формы с именами их полей, находятся внутри $detail.
Ваша очередь создавать запрос, который будет принимать ключ массива $ detail в качестве столбцов таблицы, а значение $ detail - это значение, которое будет вставлено в БД, как
$field_string = '';
$value_string = '';
foreach($detail as $key => $val){
$field_string = $key.",";
$value_string = $value.",";
}
$field_string = trim($field_string, ",");
$value_string = trim($value_string, ",");
$query = "INSERT INTO table ($field_string) VALUES ($value_string) ";
Это все, что я надеюсь, это поможет вам
Создать таблицу со всеми полями в database.selected значение поля опции будет вставлено, а для других полей будет пустым
Все, что вы можете сделать, это либо создать базу данных со всеми столбцами в таблицах, либо просто добавить столбец снова и снова в таблицу if it does not exist
но столбец, который был добавлен в базу данных, будет существовать, даже если вы не добавите в него данные, пока не удалите его
Сначала получите все номера столбцов с помощью следующего оператора select (во время примера я предполагаю, что у вас есть класс (как всегда у меня есть) для чтения данных из БД)
select count(*) from cols where table_name='MyTableName'
если номер строки совпадает с ответом на вышеуказанный запрос, поэтому вы должны показать
select * from MyTableName
если не:
я предполагаю, что вы сохраняете данные в $UserSelectedField
$userSelectedField=implode($UserSelectedField,',');
$sql="select $UserSelectedField from MyTableName ";
тогда вы можете показать ответ $sql