Home > Database > Mysql Tutorial > How Vue implements fuzzy query of Mysql database data

How Vue implements fuzzy query of Mysql database data

WBOY
Release: 2023-06-02 11:31:37
forward
1312 people have browsed it

1. Requirements

Enter data in the input box, and fuzzy search the corresponding content of the database based on the input results to achieve fuzzy query.

2. Implement the

input box using v-model two-way binding to query data keyWord.

<el-input v-model="keyWord" placeholder="请输入关键字搜索" clearable></el-input>
        <el-button type="success" icon="el-icon-search" @click="search"></el-button>
Copy after login

Since the input box and the display result are no longer in the same view, the search results are passed to the page where the results are displayed when the route jumps. The query# is used here. ##.

search function:

How Vue implements fuzzy query of Mysql database data

##SearchResult.vue

Code

How Vue implements fuzzy query of Mysql database dataGet the

keyWord

getData(offset,limit)# from the input box in the created

function ##The function uses

axios to query data based on keyWord to the backend, where offset and limit are parameters for paging query.

//请求数据库数据的方法
    getData(offset,limit){
      this.axios.post(&#39;/php/search.php&#39;, qs.stringify({
        offset: offset,
        limit: limit,
        keyWord: this.keyWord
      }), { headers: { &#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded&#39; } }).then((res) => {
        this.total = res.data.total
        this.resultList = res.data.data
      }).catch((err) => {
        this.$message.error(err)
      })
Copy after login
After successfully obtaining the data, the data will be stored in the resultList

array. You only need to loop through the array to display the query results to the front end.

The backend is written in php

, which mainly uses the

like of the sql statement to implement fuzzy query. Backendsearch.php file, change the basic database connection information to your own.

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

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 

$keyWord = $_POST[&#39;keyWord&#39;];
//获取前端的参数 开始和结束number
if ( !isset( $_POST[&#39;offset&#39;] ) ) {
 echo 0;
 exit();
};
$offset = ( int )$_POST[&#39;offset&#39;];

if ( !isset( $_POST[&#39;limit&#39;] ) ) {
 echo 0;
 exit();
};
$limit = ( int )$_POST[&#39;limit&#39;];
//分页查询数据库
$sql = "SELECT * FROM posts where title like &#39;%$keyWord%&#39; order by id desc LIMIT $limit OFFSET $offset";
$result = $conn->query($sql);

$sqlGetCount = "SELECT COUNT(*) cnt FROM posts where title like &#39;%$keyWord%&#39;";
$rescnt = $conn->query($sqlGetCount);
$rescnt = $rescnt->fetch_assoc();
$arr = array();
if ($result->num_rows > 0) {
 while ( $row = $result->fetch_assoc() ) {
    array_push( $arr, $row );
}
 //echo json_encode( $arr, JSON_UNESCAPED_UNICODE );
 echo json_encode(array_merge(array(&#39;data&#39;=>$arr),array(&#39;total&#39;=>(int)$rescnt[&#39;cnt&#39;])));
 
} else {
    echo 0;
}
mysqli_close( $conn );
?>
Copy after login
Note the sql statement:

SELECT * FROM posts where title like &#39;%$keyWord%&#39; order by id desc LIMIT $limit OFFSET $offset;
Copy after login
like should be used later

'%$keyWord%' to pass parameters, and It's not %' $keyWord'%, it's just a trap. Then this is a fuzzy query title based on the input data, which is the title of the data segment. It can be changed to query other content. 3. Result

The above is the detailed content of How Vue implements fuzzy query of Mysql database data. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:yisu.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template