Skip to content

小小前端

明月本无心,行人自回首。

Menu
  • 前端开发
  • 编程技术
  • SQL语句
  • Linux
  • 生活/旅行
  • JSEditor
  • MiniBarCMS
  • About
  • 隐私政策
Menu

使用express+mysql实现分页效果

Posted on 2017年5月21日 by king2088

在mysql中SQL语句有一个为limit的条件筛选,limit中如果只传递一个值,则表示获取的条数,如果传递两个值则表示从第几条记录到第几条,如下:
limit 10 //这里是需要从数据库读出10条数据
limit 2,10 //这里这是从数据库中第3条数据开始取10条数据

1、使用limit实现分页(此方法不推荐,因为看上去不那么高大上)

不推荐就是因为不高大上,无法显示你是程序猿,因此你可以了解下就可以了!


var init_page=1;//默认页码为1
var num = 10;//每页要显示的数据量
//假如有传递进来的页码,比如2,那么当前的init_page的值则更改为传递进来的值
if(req.query.page){
init_page = parseInt(req.query.page);
}
var start=0;//设置起始数据为第一条
if(init_page>1){
start = (init_page-1)*num; //页码减去1,乘以条数就得到分页的起始数了
}
var sql='select * from user limit'+start+','+num; //这里就获得了第一页的10条数据

这样我们就可以准确的获取到相关的数据了,但是这种方法并不想我吗自己想象的那样高大上,因为这种方法大多是数据库管理人员使用的,如果你是一个队代码质量要求很高的程序猿,那么我推荐使用下面的代码,这种代码不仅能体现出你的逻辑思维,并且使用下面的方法,可以做出很完美的resetfull api。

2、使用limit结合offset

这两个参数结合使用,将会是非常完美的结合啊。所以你以后妈妈再也不用担心你的分页代码了。
完美先来看一个sql
select * from user limit 10 offset 0;//这段代码中limit是查询10条数据,offset 0这是设置从第1条开始,如果我们要从第十条开始,则是offset 9
有了offset,我们就能够更好的对数据进行分页啦,如此一来想要利用express+mysql制作一个可以分页,并且可以设置每页数据量的api,那就超级容易了。
下面完美就来实现一个resetfull api,地址如下user?page=1&num=10(其中page就是分页的页码,num则是显示的条数)
module.exports = {
//搜索所有job并分页
select: function (req, res, next) {
pool.getConnection(function(err, connection) {
var param = req.query || req.params;
//分页实现
var current_page = 1; //默认为1
var num = 10; //每页条数
if (param.page) {
current_page = parseInt(param.page);
}
if (param.num) {
num = parseInt(param.num);
}
//设置最后一页页码
var last_page = current_page - 1;
//假如目前仅有一页,则最后一页则为1
if (current_page <= 1) { last_page = 1; } //如果需要下一页,则开启 //var next_page = current_page + 1; var sql = 'select * FROM users limit '+num+' offset '+ (current_page-1)*num connection.query(sql, function(err, result) { console.log(result); jsonWrite(res, result); // 释放连接 connection.release(); }); }); } }

发表评论 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

分类

近期文章

  • cordova-plugin-camera在某些android机型中拍照或选择文件时闪退出错的解决办法 2019年10月24日
  • JavaScript nodeJS base64加密解密url参数 2019年10月15日
  • 利用expressJS编写reset api 2019年4月13日
  • angular4 + http拦截器 2019年3月21日
  • ionic navCtrl.pop如何传递参数给上一个页面 2018年11月16日
  • ionic3搭建开发/测试环境 2018年10月25日
  • ionic2、3双击硬件back按键退出应用 2018年10月24日
  • VMware安装Mac OS High Sierra 10.12及高版本无法全屏 2018年8月24日

近期评论

  • 手表资讯发表在《ReactJS环境搭建》
  • king2088发表在《ionic中使用热更新插件cordova-hot-code-push》
  • 重阳节的诗句发表在《常用的sql语句》
  • 新郎致辞发表在《PHP代码实现WordPress相关文章的几种方法》
  • 霸道总裁发表在《vsftpd 提示 unrecognized service 解决办法》

归档

标签

Ajax Android Angular APP Cordova CSS css3 express html5 ionic Java javascript jQuery Linux loading mac Mac OS mongodb MySQL node nodejs PHP react SQL SSH VirtualBox vue vue-cli win10 WordPress WP REST API 主题 兼容性 前端 备份 插件 数据库 数组 服务器 正则表达式 浏览器 热更新 目录 组件 错误
2023年 4月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
« 10月    
© 2023 小小前端 | Powered by Superbs Personal Blog theme