Как вставить динамическое значение в базу данных 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

Другие вопросы по тегам