我有一个允许您输入电话号码的表单。您可以单击加号按钮并添加更多字段。我需要将所有这些值存储在数据库中,但只有一列可以执行此操作。
电话号码也是一种类型下拉列表,您可以在其中选择以下内容:移动,家庭和工作。所以我需要一种方法将每个字段的类型和数字配对,然后将所有对组合在一起。然后,当我需要信息时,能够将其全部拉出并将所有值放入数组中。几乎像加密和解密。
我想的是:
type:number;type:number;type:number;type:number;type:number;type:number
能够使用爆炸和内爆来加密和解密。
但这有多好?我还有一个搜索功能,可以搜索电话号码。我想我的方式对于搜索功能来说并不容易。
答案 0 :(得分:3)
我会说这是一个坏主意。如果您计划使用有限类型的数字,例如Home,Work,Mobile等,我建议您为每个数字添加列。否则,请创建一个单独的数据库表“phone_numbers”,并将其与您的客户ID或类似信息相关联,并添加您喜欢的数字。搜索将更快,更容易实现。
如果你仍然需要将它们存储在一个字段中,那么按照你的建议使用php implode()和explode()。在我这样做的情况下,我会使用我的客户很少会想到的字符,例如管道符号“|”作为分隔符。当然我需要使用str_replace或这样的技术来过滤掉我的用户是否意外地在输入中使用了它,但最好是它的角色很少使用。
答案 1 :(得分:2)
搜索肯定不会起作用。特别是如果您使用搜索自动完成等功能,您希望能够快速选择以某些数字开头的所有数字。
有两种选择:添加更多列或为仅包含此人的类型,编号和ID的电话号码添加单独的表。
答案 2 :(得分:0)
PHP代码:
$delimiter = "|";
if (isset($_POST['editfill_mobile'])) {
$mobileArray = $_POST['editfill_mobile'];
$replymobile = "";
$i = 0;
foreach ($mobileArray as $key => $value) {
$i++;
$replymobile .= $value;
$replymobile .= $delimiter;
}
}
将此$ replymobile存储在数据库列中。
最终,当您查询数据库时,您可能需要拆分上面的字符串以解析数据....