>  기사  >  백엔드 개발  >  PHP와 Vue를 사용하여 창고 관리를 위한 빠른 검색 기능을 개발하는 방법

PHP와 Vue를 사용하여 창고 관리를 위한 빠른 검색 기능을 개발하는 방법

WBOY
WBOY원래의
2023-09-25 08:12:431158검색

PHP와 Vue를 사용하여 창고 관리를 위한 빠른 검색 기능을 개발하는 방법

PHP와 Vue를 사용하여 창고 관리를 위한 빠른 검색 기능을 개발하는 방법

현대 창고 관리 시스템에서는 빠른 검색 기능이 매우 중요합니다. 이를 통해 사용자는 필요한 창고 정보를 신속하게 찾고 업무 효율성을 높일 수 있습니다. 이 기사에서는 PHP와 Vue를 사용하여 창고 관리 시스템에서 빠른 검색 기능을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

  1. 개발 환경 준비

시작하기 전에 다음 소프트웨어가 설치되어 있는지 확인하세요.

  • PHP 서버 환경(예: Apache 또는 Nginx)
  • MySQL 데이터베이스
  • Vue.js 개발 환경
  1. 데이터베이스 및 데이터 테이블 생성

먼저 창고 정보를 저장할 데이터 테이블을 생성해야 합니다. MySQL 데이터베이스에서 다음 SQL 문을 실행합니다.

CREATE DATABASE IF NOT EXISTS `repository_management`;
USE `repository_management`;

CREATE TABLE `repositories` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NOT NULL,
  `description` TEXT,
  `location` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `repositories` (`name`, `description`, `location`) VALUES
  ('仓库A', '这是仓库A的描述', '地点A'),
  ('仓库B', '这是仓库B的描述', '地点B'),
  ('仓库C', '这是仓库C的描述', '地点C');

위 코드는 repository_management라는 데이터베이스를 생성하고 그 안에 repositories라는 데이터 테이블을 생성하고 몇 가지 샘플을 삽입합니다. 데이터. repository_management的数据库,并在其中创建了一个名为repositories的数据表,并插入了一些示例数据。

  1. 后端开发

接下来,我们将使用PHP来开发后端API,用于提供仓库数据和搜索功能。创建一个名为api.php的文件,将其放在服务器的Web根目录下。

<?php

header('Content-Type: application/json');

// 连接数据库
$servername = 'localhost';
$username = '数据库用户名';
$password = '数据库密码';
$dbname = 'repository_management';

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die('连接失败: ' . $conn->connect_error);
}

// 获取仓库列表
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    $sql = 'SELECT * FROM `repositories`';
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $repositories = array();
        while ($row = $result->fetch_assoc()) {
            $repositories[] = $row;
        }
        echo json_encode($repositories);
    } else {
        echo '[]';
    }
}

// 搜索仓库
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $searchTerm = $_POST['term'];
    $sql = "SELECT * FROM `repositories` WHERE `name` LIKE '%$searchTerm%'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $repositories = array();
        while ($row = $result->fetch_assoc()) {
            $repositories[] = $row;
        }
        echo json_encode($repositories);
    } else {
        echo '[]';
    }
}

$conn->close();

在上述代码中,我们首先建立与数据库的连接,然后定义两个接口:获取仓库列表和搜索仓库。获取仓库列表接口通过执行SQL语句SELECT * FROM repositories从数据库中获取所有仓库数据,并将结果返回为JSON格式的数据。搜索仓库接口则是通过获取从前端传递过来的搜索关键字,执行SQL语句`SELECT * FROM `repositories` WHERE `name` LIKE '%$searchTerm%'来进行模糊搜索,并将结果返回为JSON格式的数据。

请记得将代码中的数据库用户名数据库密码替换为你自己的实际数据库用户名和密码。

  1. 前端开发

接下来,我们将使用Vue.js来开发前端页面,用于展示仓库信息和搜索功能。创建一个名为index.html的文件,并将其放在服务器的Web根目录下。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <title>仓库管理系统</title>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
    <div id="app">
        <h1>仓库管理系统</h1>
        <input type="text" v-model="searchTerm" placeholder="输入关键字搜索仓库">
        <ul>
            <li v-for="repository in repositories">{{ repository.name }}({{ repository.location }})</li>
        </ul>
    </div>

    <script>
        new Vue({
            el: '#app',
            data: {
                repositories: [],
                searchTerm: ''
            },
            mounted: function () {
                this.getRepositories();
            },
            methods: {
                getRepositories: function () {
                    fetch('api.php')
                        .then(function(response) {
                            return response.json();
                        })
                        .then(function(repositories) {
                            this.repositories = repositories;
                        }.bind(this))
                        .catch(function(error) {
                            console.log(error);
                        });
                },
                searchRepositories: function () {
                    fetch('api.php', {
                        method: 'POST',
                        headers: {
                            'Content-Type': 'application/x-www-form-urlencoded'
                        },
                        body: 'term=' + this.searchTerm
                    })
                        .then(function(response) {
                            return response.json();
                        })
                        .then(function(repositories) {
                            this.repositories = repositories;
                        }.bind(this))
                        .catch(function(error) {
                            console.log(error);
                        });
                }
            },
            watch: {
                searchTerm: function () {
                    this.searchRepositories();
                }
            }
        });
    </script>
</body>
</html>

在上述代码中,我们创建了一个Vue实例,并在data属性中定义了两个变量:repositories(用于存储仓库数据)和searchTerm(用于存储搜索关键字)。在mounted生命周期钩子中,我们调用getRepositories方法来从后端获取仓库数据,并将其赋值给repositories变量。getRepositories方法使用了fetch函数来发送GET请求。

在模板中,我们使用了v-for指令来遍历repositories变量,并将每个仓库的名称和位置显示在页面上。输入框中使用了v-model指令将输入的内容和searchTerm变量进行了双向绑定。在输入框内容发生变化时,watch属性中的searchTerm监听到变化后,自动调用searchRepositories方法来发送POST请求搜索仓库数据。

  1. 运行和测试

将上述代码保存后,启动你的Web服务器,并在浏览器中打开index.html

    백엔드 개발

    🎜다음으로는 PHP를 이용해 웨어하우스 데이터와 검색 기능을 제공하는 백엔드 API를 개발해보겠습니다. api.php라는 파일을 생성하여 서버의 웹 루트 디렉터리에 넣습니다. 🎜rrreee🎜위 코드에서는 먼저 데이터베이스와의 연결을 설정한 다음 창고 목록 가져오기와 창고 검색이라는 두 가지 인터페이스를 정의합니다. Get Warehouse List 인터페이스는 SQL 문 SELECT * FROM repositories를 실행하여 데이터베이스에서 모든 웨어하우스 데이터를 얻고 결과를 JSON 형식의 데이터로 반환합니다. 검색 웨어하우스 인터페이스는 프런트 엔드에서 전달된 검색 키워드를 얻고, SQL 문 `SELECT * FROM `repositories` WHERE `name` LIKE '%$searchTerm%'을 실행하고 결과를 반환함으로써 퍼지 검색을 수행합니다. 데이터는 JSON 형식입니다. 🎜🎜코드의 데이터베이스 사용자 이름데이터베이스 비밀번호를 실제 데이터베이스 사용자 이름과 비밀번호로 바꾸는 것을 잊지 마세요. 🎜
      🎜프런트엔드 개발🎜🎜🎜다음으로는 Vue.js를 사용해 창고 정보와 검색 기능을 표시하는 프런트엔드 페이지를 개발해보겠습니다. index.html이라는 파일을 만들어 서버의 웹 루트 디렉터리에 넣습니다. 🎜rrreee🎜위 코드에서는 Vue 인스턴스를 생성하고 data 속성에 두 개의 변수인 repositories(웨어하우스 데이터를 저장하는 데 사용됨)와 searchTerm (검색 키워드를 저장하는 데 사용됨) 마운트된 수명 주기 후크에서 getRepositories 메서드를 호출하여 백엔드에서 웨어하우스 데이터를 가져와 repositories 변수에 할당합니다. getRepositories 메서드는 fetch 함수를 사용하여 GET 요청을 보냅니다. 🎜🎜템플릿에서는 v-for 지시어를 사용하여 repositories 변수를 반복하고 페이지에 각 저장소의 이름과 위치를 표시합니다. v-model 지시문은 입력 내용을 searchTerm 변수에 양방향으로 바인딩하기 위해 입력 상자에서 사용됩니다. 입력 상자의 내용이 변경되면 watch 속성의 searchTerm이 변경 사항을 감지하고 자동으로 searchRepositories 메서드를 호출하여 POST 요청을 보냅니다. 창고 데이터를 검색합니다. 🎜
        🎜실행 및 테스트🎜🎜🎜위 코드를 저장한 후 웹 서버를 시작하고 브라우저에서 index.html 파일의 주소를 엽니다. 입력 상자와 저장소 목록이 있는 페이지가 표시됩니다. 입력창에 키워드를 입력하면 해당 키워드와 관련된 창고 정보가 실시간으로 페이지에 표시됩니다. 🎜🎜위는 창고 관리의 빠른 검색 기능을 개발하기 위해 PHP와 Vue를 사용하는 전체 과정입니다. 백엔드 API와 프런트엔드 페이지 간의 협력을 실현함으로써 창고를 신속하게 검색하고 위치 및 설명 정보를 명확히 할 수 있습니다. 이러한 기능은 매우 실용적이고 구현하기 쉬우며 창고 관리 효율성을 크게 향상시킬 수 있습니다. 🎜

위 내용은 PHP와 Vue를 사용하여 창고 관리를 위한 빠른 검색 기능을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.