PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例


Posted in PHP onJune 09, 2018

本文实例讲述了PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据。分享给大家供大家参考,具体如下:

主要功能是从postgreSql查询数据,并检索,由于自己刚开始接触,所以难点在于多条数据同时筛选并分页显示出来,写下自己的代码与大家共享。

<html>
<head>
<script type="text/javascript">
  /**
 * 分页函数
 * pno--页数
 * psize--每页显示记录数
 * 分页部分是从真实数据行开始,因而存在加减某个常数,以确定真正的记录数
 * 纯js分页实质是数据行全部加载,通过是否显示属性完成分页功能
 **/
function goPage(pno,psize){
  var itable = document.getElementById("idData");
  var num = itable.rows.length;//表格所有行数(所有记录数)
  console.log(num);
  var totalPage = 0;//总页数
  var pageSize = psize;//每页显示行数
  //总共分几页
  if(num/pageSize > parseInt(num/pageSize)){
      totalPage=parseInt(num/pageSize)+1;
    }else{
      totalPage=parseInt(num/pageSize);
    }
  var currentPage = pno;//当前页数
  var startRow = (currentPage - 1) * pageSize+1;//开始显示的行 31
    var endRow = currentPage * pageSize;//结束显示的行  40
    endRow = (endRow > num)? num : endRow;  40
    console.log(endRow);
    //遍历显示数据实现分页
  for(var i=1;i<(num+1);i++){
    var irow = itable.rows[i-1];
    if(i>=startRow && i<=endRow){
      irow.style.display = "block";
    }else{
      irow.style.display = "none";
    }
  }
  var pageEnd = document.getElementById("pageEnd");
  var tempStr = "共"+num+"条记录 分"+totalPage+"页 当前第"+currentPage+"页";
  if(currentPage>1){
    tempStr += "<a href=\"#\" onClick=\"goPage("+(1)+","+psize+")\">首页</a>";
    tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage-1)+","+psize+")\"><上一页</a>"
  }else{
    tempStr += "首页";
    tempStr += "<上一页";
  }
  if(currentPage<totalPage){
    tempStr += "<a href=\"#\" onClick=\"goPage("+(currentPage+1)+","+psize+")\">下一页></a>";
    tempStr += "<a href=\"#\" onClick=\"goPage("+(totalPage)+","+psize+")\">尾页</a>";
  }else{
    tempStr += "下一页>";
    tempStr += "尾页";
  }
  document.getElementById("barcon").innerHTML = tempStr;
}
</script>
  <style type="text/css">
    table
     {
     text-align:center;
     width:1000px;
     }
     th
     {
     width:100px;
     }
    input
     {
     width:100px;
     }
    td
     {
     width:100px;
     }
  </style>
  </head>
  <body onLoad="goPage(1,10);">
    <form method="post" action="browes.php">
      <table border="1">
        <tr>
          <th><h2>个人概况一览</h2></th>
        </tr>
        <tr>
          <table border="1" >
            <tr>
              <td>姓:</td>
              <td><input type="text" name="surname">  </td>
              <td>名:</td>
              <td><input type="text" name="name">  </td>
              <td>手机:</td>
              <td><input type="text" name="phone">  </td>
              <td>性别:</td>
              <td><select name="sex" id="select_k1" class="xla_k">
                  <option value=""> </option>
                  <option value="male">男</option>
                  <option value="female">女</option>
                </select>
              </td>
              <td>学校:</td>
              <td><input type="text" name="school">  </td>
            </tr>
          </table>
        </tr>
        <tr>
          <td><input type="submit" name="submit" value="提交"> </td>
          <td><input name=reset type=reset value=重置></td>
        </tr>
      </table>
    </form>
</body>
<body>
    <table id="idData" border="1" >
     <tr>
      <th>照片</th>
      <th>姓名</th>
      <th>性别</th>
      <th>生日</th>
      <th>邮箱</th>
      <th>电话</th>
      <th>学校</th>
      <th>技能</th>
      <th>选项</th>
     </tr>
    <?php
      include "../head.php";
      $s = $_POST["surname"];
      $a = $_POST["name"];
      $b = $_POST["phone"];
      $c = $_POST["sex"];
      $d = $_POST["school"];
/*
下面这段代码是PostgreSQL数据库多条数据检索编写数据库的通用方法
*/
      $field = "where 1 = 1 ";
        if($a){
          //magic_quotes_gpc=on,addslashes not used.
          $name = str_replace('\'', "''", $a);
          $field.= "and (name like '%".$name."%') ";
        }
         if(($s)!=NULL){
          $surname = str_replace('\'', "''", $s);
          $field.= "and (surname like '%".$surname."%') ";
        }
        if(($c)!=NULL){
          $field.= "and (sex = '".$c."') ";
        }
        if(($d)!=NULL){
          $school = str_replace('\'', "''", $d);
          $field.= "and (school like '%".$school."%') ";
        }
        if(($b)!=NULL){
          $tel = str_replace('\'', "''", $b);
          $field.= "and (phone = '".$tel."') ";
        }
        $sql = "select * from worker ".$field;
/*
上面这段代码是PostgreSQL数据库多条数据检索编写数据库的通用方法
*/
      $ret = pg_query($db, $sql);
    while($row=pg_fetch_row($ret)){
    ?>
     <tr>
      <td><?php echo $row[9];?></td>
      <td><?php echo $row[1].$row[2];?></td>
      <td><?php echo $row[3];?></td>
      <td><?php echo $row[4];?></td>
      <td><?php echo $row[5];?></td>
      <td><?php echo $row[6];?></td>
      <td><?php echo $row[7];?></td>
      <td><?php echo $row[8];?></td>
      <td><button><a href = "<?php echo 'change.php?id='.$row[0] ?>">change</button>
        <button><a href = "<?php echo 'delete.php?id='.$row[0] ?>">delete</button></td>
     </tr>
    <?php } ?>
    </table>
    <table >
    <div id="barcon" name="barcon"></div>
    </table>
  </body>
</html>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php DOS攻击实现代码(附如何防范)
May 29 PHP
php用户注册页面利用js进行表单验证具体实例
Oct 17 PHP
php解析url的三个示例
Jan 20 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
CI配置多数据库访问的方法
Mar 28 PHP
最新最全PHP生成制作验证码代码详解(推荐)
Jun 12 PHP
PHP中的use关键字及文件的加载详解
Nov 28 PHP
CakePHP框架Model关联对象用法分析
Aug 04 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
PHP实现二维数组中的查找算法小结
Jun 09 #PHP
PHP实现链表的定义与反转功能示例
Jun 09 #PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 #PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 #PHP
PHP 实现手机端APP支付宝支付功能
Jun 07 #PHP
Laravel程序架构设计思路之使用动作类
Jun 07 #PHP
laravel手动创建数组分页的实现代码
Jun 07 #PHP
You might like
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
PHP统计目录大小的自定义函数分享
2014/11/18 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
php实现session共享的实例方法
2019/09/19 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
angular ng-model 无法获取值的处理方法
2018/10/02 Javascript
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
vue.js刷新当前页面的实例讲解
2020/12/29 Python
如何用Python提取10000份log中的产品信息
2021/01/14 Python
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
化妆师职业生涯规划书
2014/02/16 职场文书
实习生评语
2014/04/26 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
预备党员转正材料
2014/12/19 职场文书
Python实现拼音转换
2021/06/07 Python
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL