前端表单

index.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">        
	<title> 搜索</title>
</head>
<body>
	<form action="search.php" method="post">
		<input type="text" name="keywords"/>
		<input type="submit" value="查询"/>
	</form>
</body>
</html>

后端查询

search.php

<?php 
$servername = ""; //主机
$username = ""; //用户名
$password = ""; //密码
$dbname = ""; //数据库名称


$conn = new mysqli($servername, $username, $password, $dbname); //创建连接

if ($conn->connect_error) { 
    die("连接失败: " . $conn->connect_error); //检查连接状态
}

$keywords=$_POST['keywords']; //表单 POST 关键词

if(empty($_POST['keywords'])){ //判断提交的表单输入框是否为空

  header("Location:.");//如果为空则输出该内容,也可使用 echo 输出文本,其中 . 即重定向到当前位置
 }

 elseif(empty($_POST['comment'])){ //使用循环判断多个 POST 关键词
 	echo "这里也不可以空着哦!"; 
 }

 else{ //如果提交内容则执行以下操作
 	$sql="SELECT * FROM xxx where id like'$keywords'"; //执行数据库查询

 	$result = $conn->query($sql); //查询结果

 	if ($result->num_rows > 0) { //查询结果非 0 则输出以下内容

 		while($row = $result->fetch_assoc()) { // 输出查询后的结果内容
 			echo "id: " . $row["id"]. "<br>user: " . $row["user"]. "<br>pwd: " . $row["pwd"]. "<p></p>";
 		}

 	}
 	else{
 		echo "没有查到数据。"; //查询结果为 0 则输出以下内容
 	}
 }
 mysqli_close($conn); //关闭数据库的连接
?>

更多思路

多个表单录值
<input type="text" name="keywords" class="formControl" placeholder="请输入序列号"/>
<input type="text" name="vifycode" class="formControl" placeholder="请输入验证码"/>

多个POST请求
$keywords=$_POST['keywords']; 
$vifycode=$_POST['vifycode']; 

多个循环判断
if(empty($_POST['keywords'])){ //判断提交的表单输入框是否为空

  header("Location:.");//如果为空则输出该内容,也可使用 echo 输出文本
 }
 elseif(empty($_POST['vifycode'])){ //使用循环判断多个 POST 关键词
  header("Location:.");//如果为空则输出该内容,也可使用 echo 输出文本
  }

否则输出内容
 else{ 

多个like字段和值
 	$sql="SELECT * FROM xxx where id like'$keywords' and vifycode like'$vifycode' and DATE_SUB( CURDATE( ), INTERVAL 3 DAY ) <=  dtime"; 

like 查询优化
like的关键字相同:
where instr(nvl(a, '')||nvl(b,'')||nvl(c,''),   'xx') > 0
注意:把要模糊查询的字段先拼接起来,拼接时需要把null转成‘’,否则只要有一个字段值是空,整个拼接的字符串都成空了, 然后用instr 函数去过滤;

like的关键字不同:
where instr(a, 'xx') > 0  or  instr(b, 'yy') > 0  or instr(c, 'zz') > 0 
分类: 前端开发

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。