欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-10-18 08:44:21
本文实例讲述了php实现从postgresql数据库检索数据分页显示及根据条件查找数据。分享给大家供大家参考,具体如下: 主要功能是从postgresql查询数据,并检索...

本文实例讲述了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基于pdo操作数据库技巧总结》、《php+oracle数据库程序设计技巧总结》、《php+mongodb数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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