【发布时间】:2015-08-09 11:55:10
【问题描述】:
我在数据库中有一个名为“item”的表,它有不同的列,其中一个名为“size”的表有两个用逗号分隔的值,即 Medium、Large。现在,当我检索这些值以显示在我的“选择”标签中时,它会一起显示它们,我尝试使用 explode();但我搞砸了它的行为。我已经附上了表格的图片和我网站内的结果数据以及代码。
上面实现了while循环,这只是'Size:'部分
Size :
<?php var_dump($row["item_size"]);
$arr = $row["item_size"];
$exp = explode("," , $arr);
var_dump($exp);
?>
<select name="product_size">
<?php
echo "<option value='".$row["item_size"]."'>".$row["item_size"]."</option>";
echo "</select>";
?>
【问题讨论】:
-
不应该在字段中存储数组(标准化你的存储)
-
更好的方法是将类别(中、小等)存储在一个表中,并在您的产品和此类别之间建立一个链接表,例如。产品猫。然后您可以轻松加入并检索此信息(以及更改要求时的更多信息)
-
如果我理解正确,在这种情况下,链接表 product_cats 可能包含一个 product_id(在我的情况下为 item_id)和一个类别列。现在再一次,我必须在类别列中存储一个数组如果我想存储多个类别 (Medium, Small) ,不是吗?
-
没有。您最终将存储两条记录 product_id: 10, cat_id: 1 ( Small ) 和 product_id: 10, cat_id: 2 ( Medium )。这种结构可以以简单的方式连接和分析