>  기사  >  백엔드 개발  >  PHP 및 SQLite를 사용하여 페이징 및 검색 기능 구현

PHP 및 SQLite를 사용하여 페이징 및 검색 기능 구현

WBOY
WBOY원래의
2023-07-28 21:55:261094검색

PHP와 SQLite를 사용하여 페이징 및 검색 기능 구현

웹 개발에서 페이징 및 검색 기능은 매우 일반적이고 실용적인 기능입니다. 이 기사에서는 PHP와 SQLite를 사용하여 이 두 기능을 구현하는 방법을 소개하고 해당 코드 예제를 제공합니다.

먼저 데이터를 저장할 SQLite 데이터베이스를 만들어야 합니다. ID, 이름, 나이 등과 같은 필드를 포함하는 사용자 정보가 포함된 테이블이 있다고 가정합니다. 다음 SQL 명령을 사용하여 테이블을 생성할 수 있습니다.

CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT,
    age INTEGER
);

다음으로 데이터베이스에 연결하고 데이터를 쿼리하는 PHP 코드를 작성해야 합니다. 데이터베이스에 연결하여 사용자가 입력한 페이지 번호와 검색 키워드를 얻었다고 가정합니다. 다음 코드를 사용하여 쿼리하고 페이지를 매길 수 있습니다.

// 获取页码和搜索关键字
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$keyword = isset($_GET['keyword']) ? $_GET['keyword'] : '';

// 计算分页偏移量
$offset = ($page - 1) * 10;

// 构建查询SQL语句
$sql = "SELECT * FROM users";
if ($keyword) {
    $sql .= " WHERE name LIKE '%$keyword%'";
}
$sql .= " LIMIT 10 OFFSET $offset";

// 执行查询
$result = $conn->query($sql);

// 输出查询结果
if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "ID: " . $row['id'] . ", Name: " . $row['name'] . ", Age: " . $row['age'];
        echo "<br>";
    }
} else {
    echo "没有找到匹配的结果";
}

// 计算总页数
$total = $conn->query("SELECT COUNT(*) FROM users")->fetch_row()[0];
$totalPages = ceil($total / 10);

// 输出分页链接
for ($i = 1; $i <= $totalPages; $i++) {
    echo "<a href='?page=$i'>$i</a> ";
}

위 코드는 먼저 사용자가 입력한 페이지 번호와 검색 키워드를 가져옵니다. 그런 다음 사용자 입력을 기반으로 쿼리 SQL 문이 구성됩니다. 그 중 LIMITOFFSET는 페이징을 구현하는 데 사용됩니다. 마지막으로 쿼리가 실행되고 쿼리 결과가 출력됩니다. 동시에 총 페이지 수도 계산되고 페이지 매김 링크가 출력됩니다.

추가로 검색 기능을 구현하기 위해 쿼리 SQL 문에 키워드 조건 판단을 추가했습니다. 이렇게 하면 사용자가 검색어를 입력하면 해당 키워드가 포함된 결과만 조회됩니다.

마지막으로 사용자가 키워드를 입력하고 제출할 수 있도록 프런트 엔드 페이지에 검색 양식을 추가할 수 있습니다. 코드는 다음과 같습니다.

<form action="" method="GET">
    <input type="text" name="keyword">
    <input type="submit" value="搜索">
</form>

위의 코드 예시를 통해 간단하고 실용적인 페이징 및 검색 기능을 구현할 수 있습니다. 물론 실제 필요에 따라 정렬 기능 추가, AJAX 비동기 로딩 사용 등 코드를 최적화하고 확장할 수도 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 PHP 및 SQLite를 사용하여 페이징 및 검색 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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