在数据库中设置多个字段,仅从一个字段
Posted
技术标签:
【中文标题】在数据库中设置多个字段,仅从一个字段【英文标题】:Setting multiple fields in a database, from just one field 【发布时间】:2011-03-10 12:32:45 【问题描述】:我在 CMS 系统的范围内工作,该系统定义了某些字段,这些字段可用于制作在 php 应用程序中使用的表单。
我正在使用 inputSmartSearch 字段,它与 Google 建议的基本相似。
它允许我定义一个 SQL 查询,然后在我输入搜索时显示匹配的记录。
对于我的 smartsearch,我选择它来搜索不同表中的三个字段,并将这些字段连接在一起显示。
我使用这样定义我的字段:
$theinput = new inputSmartSearch($db, "chooseguests", "Choose Guests");
最后一个参数是要执行的 SQL 查询的名称。
这很好用,可以通过搜索他的姓氏或名字来找到客人。
但是,我已经实现了这个智能搜索,它是用来添加销售订单的页面。
在 sales 表中存储的每个销售订单中,与 guest 表不同,我还希望获得下订单的客人的名字和姓氏。
销售订单表的设计有两个单独的字段,分别是名字和姓氏。
使用智能搜索,我找不到任何方法来标记所选输入并将其插入回字段中。
如果我有一个智能搜索并且可以按名字或姓氏搜索,它会将结果显示为一个字段,我希望它将名字保存到名字字段,将姓氏保存到姓氏字段。
定义的每个表单都有一个包含文件,该文件定义了插入记录的函数等,如下所示:
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 查询吗?从我的 inputSmartSearch 的结果中自动填充内容的隐藏字段?还有什么?
【问题讨论】:
【参考方案1】:不确定你的设置有什么可能,但是......我的第一反应是从数据库返回名称和标记组合 - 比如 - ',' 所以 Smith,John。然后,在准备发回时,将它们分开(基于已知令牌)。现在你得到的东西去了哪里,我不知道。
【讨论】:
我可以返回元字段的内容,没问题。我需要知道如何在 PHP 中标记该字段并将其插入到单独的字段中。【参考方案2】:您只需使用数据库中的值手动设置智能搜索的起始值。然后,当数据发布到服务器时,您可以解析并附加到用于将数据存储在数据库中的数组中。至少这看起来应该可行。
【讨论】:
以上是关于在数据库中设置多个字段,仅从一个字段的主要内容,如果未能解决你的问题,请参考以下文章