• PHP+MYSQL多条件选一通用搜索系统功能单文件7KB


    通用功能: 快速填写参数用于自己的mysql数据表搜索,ajax载入数据

    1. header("content-Type: text/html; charset=UTF-8");
    2. //error_reporting(0);
    3. $dbhost = "localhost"; //数据库地址本地localhost
    4. $dbuser = "chalidecom"; //数据库账号
    5. $dbpass = "7b4ZEGJTKy"; //数据库密码
    6. $dbname = "chalidecom"; //数据库名称
    7. $dbport = "3306"; //数据库端口号
    8. $dbcode = "UTF8"; //数据库编码 UTF8 GB2312
    9. $biao = "chafenba"; //数据表名称
    10. $pagesize = 10; //每页数量
    11. $maxp = 10; //最大显示页数
    12. $title = "某某查询系统"; //页面标题
    13. $b = array();
    14. $b[$biao]["name"]= "成绩表"; //表格名称
    15. $b[$biao]["duan"]= "姓名,学号,身份证号,科目1,科目2,科目3,科目4,科目5,科目,科目N";//显示字段
    16. $b[$biao]["sox"] = "姓名,学号,身份证号";//查询条件
    17. /*
    18. //可以连续多组以上数据用于多表
    19. $b["biao2"]["name"]= "其他表"; //表格名称
    20. $b["biao2"]["duan"]= "姓名,学号,身份证号,科目1,科目2,科目3,科目4,科目5,科目,科目N";//显示字段
    21. $b["biao2"]["sox"] = "姓名,学号,身份证号";//查询条件
    22. */
    23. $biao = (isset($_GET['biao']))?addslashes($_GET['biao']):$biao;
    24. if($_GET['Act']=="cha"){
    25. $stime=microtime(true);
    26. $biao = (isset($_POST['biao']))?addslashes($_POST['biao']):$biao;
    27. $search = (isset($_POST["rame"]))?addslashes($_POST["rame"]):'';
    28. $sort = (isset($_POST['sort']))?addslashes($_POST['sort']):"id";//
    29. $order = (isset($_POST['orda']))?addslashes($_POST['orda']):"desc";
    30. $duan = (isset($_POST['duan']))?addslashes($_POST['duan']):"";
    31. $iduan = $b[$biao]["duan"]; $sox = $b[$biao]["sox"];
    32. $duanx=explode(",", $iduan);
    33. $duans = "`".join("`,`",$duanx)."`";
    34. $soxs=explode(",", $sox);
    35. if (!$b[$biao]) exit("该表【{$biao}】不可查(未授权)!");
    36. if (!stristr("-desc-asc-","-$order-")) $order = "DESC";
    37. if (!stristr(",$iduan,","-$sort-")) $sort=$soxs[0]; //排序字段:条件1
    38. $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
    39. if ($conn->connect_error) { die("Conn.Error: " . $conn->connect_error);}
    40. $sql = "SELECT $duans FROM `{$biao}` ";
    41. $tips = "字段[{$duan}]";
    42. $sqlw = "WHERE `{$duan}` LIKE '%$search%' ";
    43. $sql .= "$sqlw ORDER BY $sort $order ";
    44. $sqc = "SELECT COUNT($sort) AS count FROM `{$biao}` $sqlw ";
    45. $result = $conn->query($sqc);
    46. if (!$result) exit("连接失败信息:".mysqli_error($conn));
    47. $row = $result->fetch_assoc();
    48. $count = $row["count"];
    49. if($count<1) exit("查 表[$biao] => $tips => 关键词[$search]无结果");
    50. $pagecount = ceil($count / $pagesize);
    51. $page = 1;
    52. if (isset($_POST["page"])) { $page = $_POST["page"];}
    53. if ($page < 1) { $page = 1;}
    54. if ($page > $maxp) { exit("[Most $maxp Page]");}
    55. if ($page > $pagecount) { $page = $pagecount;}
    56. if ($pagecount > $maxp) { $pagecount = $maxp;}
    57. $start = ($page - 1) * $pagesize;
    58. $end = $start + $pagesize;
    59. $sql .= " LIMIT $start, $pagesize";
    60. $result = $conn->query($sql);
    61. if (!$result) exit("连接失败信息:".mysqli_error($conn));
    62. echo "";
    63. foreach ($result as $i=>$row) {
    64. if(!$isti){
    65. echo "
    66. \r\n\r\n\r\n\r\n";
    67. $isti="Y";
    68. }
    69. echo "
    70. \r\n\r\n\r\n\r\n";
    71. }
    72. echo "
    73. ".join("",array_keys($row))."
      ".join("",$row)."
      "
      ;
    74. $etime=microtime(true);
    75. $total = $etime-$stime;
    76. echo "

      结果: $count, 页数: $pagecount 耗时: ".round($total,3)." \r\n";

    77. if ($page > 1) { echo "首页 ";}
    78. for ($i = 1; $i <= $pagecount; $i++) {
    79. if($i == $page){ echo "$i ";}else{ echo "$i,'');\">$i ";}
    80. }
    81. if ($page < $pagecount) { echo "$pagecount,'');\">尾页 ";}
    82. if($count> $maxp*$pagesize) echo "结果{$count}较多:推荐优化输入!";
    83. echo "

      "
      ;
    84. $conn->close();
    85. exit();
    86. }
    87. ?>
    88. "UTF-8">
    89. <span class="hljs-meta"><?php</span> <span class="hljs-keyword">echo</span> <span class="hljs-variable">$title</span>; <span class="hljs-meta">?></span>
    90. "viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0">
    91. "apple-mobile-web-app-capable" content="yes" />
    92. class="logo">php echo $title; ?>div>
    93. <nav>
    94. <ul>
    95. php
    96. foreach ($b as $tt=>$vvv) {echo "
    97. $tt\">{$vvv["name"]}
    98. \r\n";}
  • ?>
  • class="search">
  • <select name="duan" id="duan" onchange="show(1,'');">
  • php
  • $sox = $b[$biao]["sox"];
  • $soxs=explode(",", $sox); $ia = count($soxs);
  • for($ii=0; $ii<$ia; $ii++){
  • $duen=$soxs[$ii]; echo "\">$duen\r\n";
  • }
  • ?>
  • "text" id="rame" placeholder="输入关键词" onfocus="this.select();">
  • class="set" style="display:none;">
  • <input type="hidden" id="biao" value="php echo $biao; ?>">
  • <input type="hidden" id="page" value="1">
  • <input type="hidden" id="sort" value="id">
  • <input type="hidden" id="orda" value="DESC">
  • <input type="hidden" id="Act" value="cha">
  • div>
  • <div class="content">
  • <div class="description">查询结果div>
  • <div id="UpTip">div>
  • div>
  • <footer>
  • <div class="left">版权所有 © 2021div>
  • <div class="mid">备案号:123456789div>
  • <div class="right"><a href="#">链接右a>div>
  • footer>
  • body>
  • <script>
  • function $(objId){ return document.getElementById(objId);}
  • var timer = null; //延时1秒自动查,延时与中文输入节能
  • var Inputs = document.querySelector('#rame');
  • Inputs.addEventListener('input', function(e) {
  • var keyword = e.target.value;
  • if (timer) { clearTimeout(timer);}
  • timer = setTimeout(function() { show(1,keyword); }, 1000);
  • });
  • function show(page,key){
  • $("page").value = page;
  • if(key != "") $("rame").value = key;
  • var fd = new FormData();
  • fd.append('rame',$("rame").value);
  • fd.append('biao',$("biao").value);
  • fd.append('orda',$("orda").value);
  • fd.append('page',$("page").value);
  • fd.append('sort',$("sort").value);
  • fd.append('duan',$("duan").value);
  • fd.append('Act',$("Act").value);
  • var xhr = new XMLHttpRequest();
  • xhr.onreadystatechange = function(){
  • if(xhr.readyState == 4){
  • if(xhr.status == 200){
  • $('UpTip').innerHTML=xhr.responseText;
  • }
  • }
  • };
  • xhr.open('POST','?Act='+$("Act").value+'&t='+new Date(),true);
  • xhr.send(fd);
  • }
  • 相关阅读:
    应用程序无法正常启动0xc000007b的解决策略,多种解决方法分享
    c语言指针的概念
    字节应届生薪资都能2万+,年薪30万,这样工作真的开心吗?
    Java main方法
    如何通过 kubectl 进入 node shell
    LED灯实验--汇编
    分布式系统中线程和进程的机制问题
    Rust常见集合
    windows消息分类PostMessage、SendMessage
    基于Java的客户资料管理系统的设计与实现
  • 原文地址:https://blog.csdn.net/YUJIANYUE/article/details/138168354