mysql怎么实现新闻其中3条数据置顶 然后剩下按照时间排列

mysql怎么实现新闻其中3条数据置顶 然后剩下按照时间排列,第1张

表结构news: id titlecontenttimeauthordescriptionflag

flag作为标记,如果取其中三条数据,则把对应的三条数据的flag设置为1(推荐),默认为0;这样就可以实现取其中的三条数据,剩下的为按时间排序;

取三条:select * from news where flag = 1 limit 3

取剩余的数据select * from news where flag = 0 order by time desc limit 10

直接查询数据库里面的数据,查询出来的是数组格式的,然后直接用 json_decode 这个函数,把查询出来的数组转化成JSON格式,然后输出

<?php

header("Content-type: text/html charset=utf-8") 

$host = '数据库IP'

$dbname = '数据库名称'

$user = '用户名'

$pw = '密码'

$pdo = new PDO("mysql:host=".$host."dbname=".$dbname."",$user,$pw) //通过PDO连接数据库

$sql = 'SELECT * FROM `新闻表` WHERE 1 '

$arr = $pdo->query($sql)->fetchall()

echo json_decode($arr) //输出JSON

?>

首先你的数据库设计不合理,国内、国外新闻应该放在一个表里面,增加一个字段来标识国内和国外,那样你的程序会非常简单。

如果不改变你现在的数据库,那么调用新的页面必须要增加一个参数,表示调用的国内还是国外,sql里面根据这个参数设置不同的表,例如:

if ($lb=='国内') $str="select * from gjfl where did='$id'"

else $str="select * from gjbz where did='$id'"

$sql=mysql_query($str)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8488159.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存