织梦根据条件查询自定义表单并输出相应的字段值

作者 : Maria Orlova 发布时间: 2020-11-20 共53人阅读

打个比方,我们有数据表dede_diyforms,此表中有aa,bb,cc,dd四个字段,如下图所示,这个可以用做任意查询系统,织梦查询系统原理就是这样实现的。

织梦根据条件查询自定义表单并输出相应的字段值

如果我们想要输入考生姓名:张同学,身份证号:41044444,提交后得出准考证号:z-104,考场:第四考场,这样的功能我们可以通过以下代码实现。

注释:以下代码中,表单input的name和id值,需要和数据库中的值一样。dede_diyforms是数据表名称,请自行更换

<html>  
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>自定义表单查询</title>
  </head>  
  <body>
    <form enctype="multipart/form-data" method="post">
      考生姓名:<input type="text" name="aa" id="aa" /></br></br>
      身份证号:<input type="text" name="bb" id="bb" /></br></br>
      <input type="submit" value="查询" /></br></br>
    </form>
  </body>
</html>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {//接收表单传递过来的值
require_once(dirname(__FILE__)."/include/common.inc.php");//链接织梦数据库(此文件必须在根目录,如果在二级目录,/include需要改为/../include)
$con = mysqli_connect($cfg_dbhost, $cfg_dbuser, $cfg_dbpwd, $cfg_dbname)or die("数据库链接失败".mysqli_error());//判断数据库是否链接成功
mysqli_set_charset($con,"utf8");//指定输出结果的编码为utf8 (请注意,是utf8,不是utf-8)
$aa= addslashes($aa);//用来过滤用户输入的参数 防止sql注入
$bb= addslashes($bb);//用来过滤用户输入的参数 防止sql注入
$sql = "select * from dede_diyforms where aa='$aa' and bb='$bb'";//查询数据库中aa/bb字段是否等于表单提交的数值
if($res=mysqli_query($con, $sql)){
	if(mysqli_num_rows($res)>0){//判断是否有符合查询条件的结果
    while ($row= mysqli_fetch_array($res))//循环查找所有结果
      echo "<div>准考证号:$row[cc]<div><div>考试场地:$row[dd]<div>";//输出符合条件的指定数据
    }else{//如果没有查询到结果
	  echo "没有查询到数据,请核实考生信息是否正确";//无结果时的提示
	}	
   }
  mysql_close($con);//关闭数据库链接
};
?>