PHP вставить в MySQL и записать номер позиции

0

Цель: Записать порядок позиции каждого элемента формы на вставке.

Я разрешаю пользователю динамически добавлять и удалять поля формы (эта функциональность работает с JS). Для простоты пользователь создает свою форму, чтобы выглядеть так:

Форма:

подзаголовок

Параграф

подзаголовок

Образ

Моя база данных будет содержать таблицу для каждого поля:

Изображение 174551

Я написал простую функцию, чтобы получить номер индекса из ассоциативного массива, я предполагаю, что могу записать это в каждой таблице в столбце под названием "позиция"?

function arrayValuePosition($value, $array)
{
    return array_search($value, array_keys($array));
}

foreach($array as $key => $value) {
    echo  arrayValuePosition($key, $array);
};

Каков наилучший способ записи этого номера позиции, а также циклический ввод в различные таблицы?

Теги:
mysqli
prepared-statement

1 ответ

1
Лучший ответ

Я думаю, что было бы проще использовать одну таблицу:

Table: form_data
Fields:
id - INT - PRI auto_increment
fields_enabled - ENUM - possible values: 'subtitle', 'paragraph', 'image'
subtitle
paragraph
image

Вы можете хранить записи как обычные строки в этой таблице, а информация о полях формы, которые пользователь разрешил, может храниться в поле fields_enabled.

Также было бы легко просмотреть существующие записи.

  • 0
    Спасибо, я ломал голову, пытаясь понять это, и здесь вы даете мне такой простой способ сделать это. благодарю вас! Я не уверен, почему вы добавили "изображение абзаца субтитров" в качестве других полей? Разве не имеет смысла объединять их в поле «текст»?
  • 0
    Пожалуйста. Что касается объединения нескольких полей в одно текстовое поле, вы потеряете возможность запуска поиска по этим записям (условия WHERE). Также будет сложно отсортировать записи по любому из этих полей. Не говоря уже о том, что если вы действительно хотите объединить их в одно поле, вам придется использовать разделитель, который также сложно определить, чтобы не конфликтовать с существующими символами в значениях поля. Я вижу только преимущества в использовании отдельных полей.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню