0

目前我会简单地循环思考这些数字,然后将它们添加为单独的数据行。

DB(managedid 是 ref 的外键)

  ----------------------
  | managedid | option |
  |-----------|--------|
  |     2     |   3    |
  |     2     |   6    |
  |     2     |   12   |
  |     2     |   54   |
  |     2     |   123  |
  ----------------------

但是可能有很多,然后要更新它,我只是将所有内容都删除并重新输入。

但如果它可以做类似的事情:

  ------------------------------
  | managedid | option         |
  |-----------|----------------|
  |     2     | 3,6,12,54,123  |
  ------------------------------

因此,不仅减少了 db 表中单个项目的数量,而且更新也会更简单。

目前我会追加说'|' 在输出每个数字之后,它们会爆炸,因此它们再次变成单数,但想知道是否有更好的方法

4

4 回答 4

3

查看 mySQL 手册中的 group_concat 函数

于 2013-07-09T12:39:35.413 回答
1

您可以使用 将这些值组合成一个字符串implode(),但值得注意的是,将所有值保存在一个字段中使得搜索变得非常不切实际,因为它们无法被合理地索引。例如,您将如何找到所有managedid已选择 option 的 s 3

于 2013-07-09T12:47:31.177 回答
0

您也可以尝试 PHP 内爆函数。

http://us2.php.net/manual/en/function.implode.php

这将采用一个数组并使用您选择的分隔符构建一个字符串。

于 2013-07-09T12:43:53.553 回答
0

感谢您的回复,但由于我永远不想单独分离任何值,所以我总是想要我想要沿着这条路线走的总值。

所以我放弃了我最初的想法,遍历结果并将它们加在一起,通过“|”将它们分开。

然后使用 php 函数 explode 将它们分离出来以在我的表单中使用。

添加它们:

     foreach ($options as $k => $opt) { $displayOptions .= $opt . '|'; };

得到他们

     $opts = explode('|',$displayOptions['options']);
于 2013-07-09T14:57:41.697 回答