我如何在我的网站上添加新内容?

时间:2013-02-23 12:56:10

标签: php

在我的php新闻脚本中

我使用此代码显示新闻标题:

<?php
$sql = mysql_query("SELECT newsid,title FROM news WHERE cat='1' ORDER BY newsid DESC LIMIT 15");
?>

按发送日期按数据库顺序显示10条新闻

但我希望首先显示针脚3的新闻:

例如:

newstitle3(pined) newstitle4(pined) newstitle6(pined) newstitle1 newstitle2 newstitle5 newstitle7 ....

你看到3,4和6是固定的新闻,然后显示未固定的新闻

如何在数据库查询中为此新闻显示添加代码?

2 个答案:

答案 0 :(得分:4)

让我们提前一步 -

考虑到您网站上可能还有其他需要此固定项目行为的区域 - 我建议使用稍微复杂但功能强大的解决方案。

设置“固定”项目的更通用方法是在数据库中创建新的“pinned_items”表。您只提及新闻项目,但也许您的网站中还有其他区域(也许将来)需要这种“固定”行为。

你可以拥有一个具有这种结构的pinned_items表 -

+----+----------+--------+
| id | obj_type | obj_id |
+----+----------+--------+
|  1 |        1 |      1 |
|  2 |        1 |      2 |
|  3 |        1 |      3 |
|  4 |        2 |      4 |
|  5 |        2 |      5 |
|  6 |        2 |      6 |
+----+----------+--------+

obj_type将引用项目的类型(让我们将类型1视为新闻项目),obj_id将引用您的news表格。

因此,要检索所有“固定”新闻项,您可以执行与此类似的查询 -

SELECT newsItem.* FROM news AS newsItem
LEFT JOIN `pinned_items` AS pinnedItem ON pinnedItem.obj_id = newsItem.id 
WHERE pinnedItem.obj_type = 1

答案 1 :(得分:2)

一种简单的方法是在表格中添加“固定”字段,然后order by pinned, newsid