显示帖子某些订单

时间:2017-08-30 14:44:31

标签: php mysql database

我有一个关于从数据中显示某些订单的问题。我从数据库中创建了颜色表。有256行和名称颜色。数据库行看起来像他的https://prnt.sc/geyp48,我希望像这个屏幕https://prnt.sc/geypbr一样显示。

现在所有颜色都有14种不同的代码。例如红色有14种不同的颜色类型。

我想以14个顺序显示每一个。

header('Location: /somewhere');

我知道我可以在第14页这样做。

<div class="red">All in 14 different red color code</div>
<div class="blue">All in 14 different blue color code</div>
<div class="gren">All in 14 different green color code</div>
<!--All others will be come here-->

但是,如果我使用$query = mysqli_query($this->db,"SELECT id, colors, color_name FROM colors WHERE id ORDER BY id ASC LIMIT 0,14") or die(mysqli_error($this->db)); ,我应该为所有其他14种颜色代码创建许多关于它的查询。

我的问题是,我如何以每14个div的不同顺序显示。

1 个答案:

答案 0 :(得分:2)

你不应该ORDER BY id。这使得顺序取决于插入顺序,这在我看来非常脆弱。您可以按颜色代码订购,假设每个颜色代码都以相同的颜色类别&#34;开头,但这又是非常脆弱的。

你应该做的是规范化。添加新表color_category,添加每种颜色。然后通过外键为每一行分配一个颜色类别。它也可以是带有颜色类别的VARCHAR()列,但从长远来看,这可能会让您感到头疼(不同的颜色拼写等)。因此,尝试使用新表将其标准化。然后你可以JOIN到原始表格来获取每一行的颜色类别。像这样:

tables schema

所以,当你拥有它时,你可以ORDER BY color_category_id并在你的代码中,在迭代时,检测color_category何时发生变化,然后开始一个新的DIV或你需要做的任何事情。