PHP/MySQL在不同页面上显示/订购附加信息

PHP/MySQL在不同页面上显示/订购附加信息,php,mysql,Php,Mysql,在我的页面中,我有一个内容块,我想在它旁边显示某些附加信息。此信息可以在多个页面上相同,但也可以在一个特定项目上显示项目 我在考虑不同的方法,但在我看来,我所有的解决方案似乎都过于详尽,或者我无法想象没有比这更聪明的解决方案了 考虑到下面的表列名与我的原始数据库不同,我在我的内容的不同表中没有使用相同的名称 虽然我想得到这个: 我期望的结果考虑到: 重要性在特定页面上显示的项目顺序应视为比始终显示的项目顺序更重要,例如否决。 几乎总是这样。也许有些项目应该显示在几乎所有的页面上,除了少数。对于将

在我的页面中,我有一个内容块,我想在它旁边显示某些附加信息。此信息可以在多个页面上相同,但也可以在一个特定项目上显示项目

我在考虑不同的方法,但在我看来,我所有的解决方案似乎都过于详尽,或者我无法想象没有比这更聪明的解决方案了

考虑到下面的表列名与我的原始数据库不同,我在我的内容的不同表中没有使用相同的名称

虽然我想得到这个:

我期望的结果考虑到:

重要性在特定页面上显示的项目顺序应视为比始终显示的项目顺序更重要,例如否决。 几乎总是这样。也许有些项目应该显示在几乎所有的页面上,除了少数。对于将来的更改,在数据库中插入一个新行,并在每个页面上显示相应的页面链接是不方便的。
有人对这种情况有什么看法吗?

您可以这样订购:

ORDER BY order ASC, display ASC
所以,对于相同的订单号,总是排在前面

或者,如果您想更加重视显示

ORDER BY display ASC, order ASC

你有页面和块。如果希望一个块显示在多个页面上,则应创建一个新表,以帮助存储实体之间的n:m连接。在这里,您将存储特定块在特定页面上的顺序。基本上-规范化数据。

像这样更改第二条查询语句

$result = mysql_query("
SELECT content
FROM fe_blocks
WHERE pagelink = '".mysql_real_escape_string($_aGET[0])."' or display = 'always'
ORDER BY order ASC, display ASC ") or die(mysql_error());

有道理,奇怪,在这种情况下我没想到。谢谢这可能是最好的提示!谢谢该解决方案在设计上更简洁,但您必须为每个页面保留相关数据的顺序;然后,您只需移动排序问题,因为对于每个页面,您必须使用您要求的相同逻辑对项目进行排序。

<div> Content of page 1 </div>
<aside>
<p>Content of block 1</p>
<p>Content of block 2</p>
<p>Content of block 3</p>
<p>Content of block 4</p>
</aside>

<div> Content of page 1 </div>
<aside>
<p>Content of block 3</p>
<p>Content of block 1</p>
<p>Content of block 2</p>
<p>Content of block 4</p>
</aside>
ORDER BY order ASC, display ASC
ORDER BY display ASC, order ASC
$result = mysql_query("
SELECT content
FROM fe_blocks
WHERE pagelink = '".mysql_real_escape_string($_aGET[0])."' or display = 'always'
ORDER BY order ASC, display ASC ") or die(mysql_error());