php - 显示帖子某些订单

标签 php mysql database

我对显示数据中的某些顺序有疑问。我已经从数据库创建了颜色表。有 256 行和名称颜色。数据库行看起来像他的:https://prnt.sc/geyp48我想像这个屏幕那样显示https://prnt.sc/geypbr .

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

我想按 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-->

我知道前 14 个小时我可以这样

$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));

但是如果我使用 ASC LIMIT 0,14 我应该为所有其他 14 种颜色代码创建许多关于它的查询。

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

最佳答案

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

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

tables schema

因此,当您拥有它时,您可以ORDER BY color_category_id并在您的代码中,在迭代时检测color_category何时发生变化,然后启动一个新的DIV或您需要执行的任何操作。

关于php - 显示帖子某些订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45963440/

相关文章:

php - 为什么 SQLite 在特定机器上这么慢(~2 q/s)?

php - 将数学放入 sql 查询中

mysql - 如何识别同一行内 3 个不同列中的重复数据并删除第二组重复数据?

database - 缓存地理编码结果的最佳方法

ruby-on-rails - RoR 使用数字作为数据库列名会产生错误

php - 向 Netbeans 添加自定义文件扩展名

PHP - 执行附加查询

php - 功能 Mootools 和 Ajax 将日期发布到表单

java - 从数据库中检索数据并使用文本框将其动态显示在表格的行中

PHPUnit 使用数据集测试方法中的选择