在我的php新闻脚本
我使用这个代码来显示新闻的标题:
<?php
$sql = mysql_query("SELECT newsid,title FROM news WHERE cat='1' ORDER BY newsid DESC LIMIT 15");
?>并在数据库中按发送日期显示10条新闻
但我想先看pin 3的新闻:
例如:
newstitle3 (已消瘦) newstitle4 (已消瘦) newstitle6 (已消瘦) newstitle1 newstitle2 newstitle5 newstitle7 ....
您看到3、4和6是固定的新闻,然后显示未固定的新闻
如何在数据库查询中为此新闻显示添加代码?
发布于 2013-02-23 21:08:10
让我们向前想一步-
考虑到您的站点上可能还有其他需要这种固定项行为的区域-我推荐一个稍微复杂但健壮的解决方案。
设置“固定”项的一种更通用的方法是在数据库中创建一个新的"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发布于 2013-02-23 20:57:51
一种简单的方法是在表中添加一个“固定的”字段,然后添加order by pinned, newsid。
https://stackoverflow.com/questions/15040768
复制相似问题