Установка нескольких полей в базе данных из одного поля - PullRequest
2 голосов
/ 01 июля 2010

Я работаю в рамках системы CMS, которая определяет определенные поля, которые можно использовать для создания форм для использования в приложении в PHP.

Я использую поле inputSmartSearch, котороев основном аналогичен предложению Google.

Он позволяет мне определять запрос SQL, а затем отображать записи, которые совпадают по мере ввода в моем поиске.

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

Я использую определение моего поля следующим образом:

    $theinput = new inputSmartSearch($db, "chooseguests", "Choose Guests");

Последний параметр - это имя SQL-запроса кexecute.

Это отлично работает, и гость может быть найден путем поиска его фамилии или имени.

Однако я реализовал этот smartsearch, который должен быть страницей для добавления продажзаказ.

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

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

С помощью smartsearch я не могу найти никакого способа токенизировать выбранный вход и вставить его обратно вfield.

Если у меня есть смарт-поиск и я могу выполнять поиск по имени или фамилии, он отображает результат только в виде одного поля, и я хочу сохранить имя в поле имени и фамилию в поле фамилии.

Каждая определенная форма имеет включаемый файл, который определяет функцию для вставки записи, например:

    function prepareVariables($variables){
    //  if ($variables["webaddress"]=="http://")
        //  $variables["webaddress"] = NULL;
        return $variables;
    }

    function updateRecord($variables, $modifiedby = NULL, $useUuid = false){
        $variables = $this->prepareVariables($variables);
        return parent::updateRecord($variables, $modifiedby, $useUuid);
    }

    function insertRecord($variables, $createdby = NULL, $overrideID = false, $replace = false, $useUuid = false){
        $variables = $this->prepareVariables($variables);
        return parent::insertRecord($variables, $createdby, $overrideID, $replace, $useUuid);
    }

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

Стоит ли искать сложный SQL-запрос?скрытые поля с содержимым, автоматически заполненным в результате моего ввода SmartSearch?Что-то еще?

Ответы [ 2 ]

0 голосов
/ 04 июля 2010

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

0 голосов
/ 01 июля 2010

Не уверен, что возможно с настройкой, которую вы используете, но ... моя первая реакция будет возвращать из БД имена, объединенные с токенами, как - '' 'Так, Смит, Джон Затем, когда вы собираетесь отправить обратно, разделите их (на основе известного токена). Теперь, куда это идет, что у тебя там, я не знаю.

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