php +ajax +sql 实现分页

上一章:php +ajax +sql 实现数据交互

上一章,讲解了php +ajax +sql实现数据异步加载,现在我们来了解下讲的的分页,这里我们用ajax来实现分页效果

注意:这里的代码大部分和上一章相似,不同的地方我会用这样的来显示

1.首先新建个sql表,表内容如上所示:

2.新建个公用文件conn.php来链接数据库:

<?php
header("Content-Type:text/html;charset=utf8");//申明编码格式
$conn=mysql_connect("localhost","root","aaaaaa") or die("数据库连接错误".mysql_errno());//连接sql
mysql_select_db("phptest",$conn);
mysql_query(‘SET NAMES UTF8‘) or die(字符集设置错误.mysql_error());//设置输入的字符集编码
?>
3.php服务端提供给前端ajax数据接口,新建文件phptoAJAX。php


<?php
require_once("conn.php");//导入公用文件
$page=isset($_POST["index"])?$_POST["index"]:1;//限制行数,$_POST["index"]为前端ajax提交的数据
$query=mysql_query("SElECT * FROM txt LIMIT $page,5") or die("错误提示:".mysql_error());//动态修改获取行数的基数$page

$jsonArray=array();//新建数据用于接收数据库每行对应的数据组while($rows=mysql_fetch_array($query)){

  //处理数据库里面的自动对应的内容
    $rows[‘content‘]=mb_substr(strip_tags(htmlspecialchars_decode($rows[‘content‘])),0,100,"utf-8");
  //把数据库的内容添加到新建数组中  
   array_push($jsonArray,$rows);//注意这里是$rows

}
echo json_encode($jsonArray);//转换成json传递给前端

4.新建phpToAJAX.HTML前端接收数据,这里我用jquery封装好的ajax方法,执行后的页面如下图所示:


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
<style> //给分页节点添加点样式

    *{margin:0;}
    ul{height:400px;width:800px;margin:0 auto;}
    .page{width:800px;height:30px;margin:0 auto;}
    li{font-size: 14px;}
    span{padding:0 2px;cursor:pointer;}
    .inline{background:#009999;color:#fff;}
    .inline:hover{color:#006600;text-decoration: underline;}
</style>

<script type="text/javascript" src="jquery-1.8.3.min.js"></script></head><body>

<?php //生成分页
include("conn.php");
$pagesize=1;
session_start();
$p=$_POST["index"]?$_POST["index"]:1;
$_SESSION["p"]=$p;
$pat=$_SESSION["p"];

$query=mysql_query("SELECT count(*) FROM txt") or die("数据链接错误:".mysql_error());//获取表的所有行,用来显示行的总是
$count_array = mysql_fetch_array($query); 
//获取表的函数


$pagenum=ceil($count_array[‘count(*)‘]/10);

//获取表的函数


for($i=1;$i<=$pagenum;$i++)

//生成制作分页的DOM


{ echo ‘&nbsp;<span>‘.$i.‘</span>‘;}?>

<ul id="list">

  <!--数据将在这里显示-->

</ul><script type="text/javascript">

    $(function(){     
   $.ajax({       
        type: "post",//传递方法    
        url: "phpToAJAX.php",//数据接口 
        dataType: "json",//接收格式    
        success: function(msg)//如果接收成功执行以下 
        {        
          var li="";      
          for(var i =0;i<msg.length-1;i++)//这里是限定10  
              
                  li+="<li><h2>"+msg[i][‘title‘]+"</h2><p>"+msg[i][‘content‘]+"...<a href=‘phpArtcle.php?art="+msg[i][‘id‘]+"‘ target=‘_blank‘>详细</a></p></li>";                                   }                $("#list").html(li);        
        },  
          error:function()//如果接收不成功执行以下
          {
                console.log("链接错误")
          }
        });
    });
   

$("span").click(function()  //点击分页节点DOM的时候 提交ajax 来重新获取数据

{
    var index=$("span").index(this);
    $("span").eq(index).addClass("inline").siblings().removeClass("inline");
    $.ajax({
        type: "post",
        url: "phpToAJAX.php",
        dataType: "json",
        data:{"index":index},
        success: function(msg)
        {
            var li="";
            for(var i =0;i<msg.length;i++)//这里是限定10            {

                li+="<li><h2>"+msg[i][‘title‘]+"</h2><p>上传时间:"+msg[i][‘createtime‘]+"</p><p>"+msg[i][‘content‘]+"...<a href=‘phpArtcle.php?art="+msg[i][‘id‘]+"‘ target=‘_blank‘>详细</a></p></li>";
                //alert(msg.length)
            }
            $("#list").html(li);
        },
        error:function(){
            console.log("链接错误")
        }
    });
})

</script></body></html>

5.点击上一步图中所示的“详细”链接,可查看对应的文章内容,新建phpArtcle.php文件

<?php
require_once("conn.php");
$id=$_GET[‘art‘];//接收前端上传的数据
//查询数据库对应的内容
$query=mysql_query("SELECT * FROM txt WHERE  id=‘$id‘") or die("文章错误:".mysql_error());
//遍历数组,显示内容

if($rows=mysql_fetch_array($query)){ echo "<h1>".$rows[‘title‘]."</h1>"; echo "<div>".htmlspecialchars_decode($rows[‘content‘])."</div>";}

-------------------完毕-----------------------

时间: 2024-10-17 02:22:29

php +ajax +sql 实现分页的相关文章

基于Jquery+Ajax+Json+高效分页

首先我们创建一般处理程序,来读取数据库中内容,得到返回值. 创建文件,GetData.ashx. 我这里是用的存储过程,存储过程会再下面粘出来,至于数据只是实例,你们可根据需求自行读取数据 代码如下: <%@ WebHandler Language="C#" Class="GetData"%> using System;using System.Web;using System.Data.SqlClient;using System.Data;using

PHP+jQuery 实现可选择url和ajax方式的分页类

1 /* 2 ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.min.js + Smarty 3.1.18 ******* 3 ******* Date:2014-10-11 4 ******* Author:小dee5 ******* Blog:http://www.cnblogs.com/dee0912/6 */ 做了一个分页的功能模块,主要的文件包括

SQL 存储过程 分页

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author: *** -- Create date: 2014-03-27 20:00 -- Description: 采用最新的 row_number() over 技术高效分页方法 -- ============================================= ALTER PRO

3种SQL语句分页写法

在开发中经常会使用到数据分页查询,一般的分页可以直接用SQL语句分页,当然也可以把分页写在存储过程里,下面是三种比较常用的SQL语句分页方法,下面以每页5条数据,查询第3页为例子: 第一种:使用not in,select top 方法: select top 5 * from T_user where ID not in(select top (3-1)*5 id from T_user order by ID) 说明:select top 页大小 [要查询的字段名称] from 表名 wher

吐槽下linq to sql的分页功能

在调试程序的时候发现一个非常奇怪的问题: 用使用linq分页,分页到第二页的时候,第二页里面有第一页里出现的数据,开始还以为是. linq语句写的有问题,调试半天,无解.后来发现是因为没有排序的缘故. 使用这个q.Skip((sc.cpage.GetValueOrDefault() - 1) * psize).Take(psize).ToList()分页一定要加个排序,否则分页有问题. 吐槽下linq to sql的分页功能,码迷,mamicode.com

sql 2000 分页

create PROCEDURE [dbo].[Proc_GetPageList] (   @Tables varchar(1000),          --表名   @PK varchar(100),               --主键       @Fields varchar(1000) = '*',    --查询的字段   @SortField varchar(200) = NULL, --排序的字段   @SortType varchar(10)= 'ASC',   --排序方式

解决hibernate对Sql Server分页慢的问题

一.hibernate分页 hibernate对MsSql的伪分页 分页是web项目中比不可少的一个功能,数据量大的时候不能全部展示必然要用到分页技术.相信大家对hibernate中的分页都不陌生: Java代码   public Query setMaxResults(int maxResults); public Query setFirstResult(int firstResult); 只要调用了这两个方法并设置好参数,hibernate自动分页完全屏蔽了底层数据库分页技术,这也是众多开

SQL笔记---分页

随用随想,随用随记. 通过实际应用掌握SQL语句. 一. SQL分页 1. 第一种方法:利用ID大于多少进行筛选 SELECT TOP 20        *FROM    dbo.WMS_StockWHERE   ( Rk_SkuCode > ( SELECT MAX(Rk_SkuCode)                         FROM   ( SELECT TOP 40                                            *           

SQL SERVER 分页方法

    最近项目中需要在SQL SERVER中进行分页,需要编写分页查询语句.之前也写过一些关于分页查询的语句,但是性能不敢恭维.于是在业务时间,在微软社区Bing了一篇老外写的关于SQL SERVER分页的文章.看过之后,感觉自己之前写的语句,太低端,太不科学了.  文章中讲了两种分页方法,其中一种只适用于SQL SERVER2012以上版本.   ROW_NUMBER()函数分页  先介绍一下ROW_NUMBER()函数,这个函数的主要作用,从它的命名中就可看出来.ROW,每列,NUMBER