在我的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是固定的新闻,然后显示未固定的新闻
如何在数据库查询中为此新闻显示添加代码?
答案 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
。