현재 위치: > 최신 기사 목록> mysqli_result를 사용하여 서버 측 필터링 및 정렬을 구현합니다

mysqli_result를 사용하여 서버 측 필터링 및 정렬을 구현합니다

M66 2025-05-18

PHP에서 MySQLI Extension 라이브러리는 MySQL 데이터베이스와의 상호 작용을위한 풍부한 기능을 제공합니다. mysqli_result는 편리한 방식으로 쿼리 결과를 얻을 수있는 일반적인 결과 세트 세트 객체입니다. 이 기사는 예제를 사용하여 MySQLI_RESULT 기능을 사용하여 서버 측 데이터 필터링 및 정렬 기능을 구현하는 방법을 소개합니다.

1. 소개

PHP 웹 애플리케이션을 구축 할 때 많은 경우 많은 양의 데이터를 처리해야합니다. 클라이언트 에서이 데이터를 필터링하고 정렬하면 사용자에게 불필요한 대기 시간이 발생할 수 있습니다. 효율성을 향상시키기 위해 필터링 및 정렬 로직을 서버 측에 실행할 수 있습니다. 이 기사는 PHP의 MySQLI_Result를 통해이 목표를 달성하는 방법을 설명합니다.

2. 데이터베이스에 연결하십시오

먼저 MySQL 데이터베이스에 연결해야합니다. mysqli_connect 함수를 사용하여 데이터베이스에 연결할 수 있습니다.

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// 연결을 만듭니다
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 연결을 확인하십시오
if (!$conn) {
    die("연결이 실패했습니다: " . mysqli_connect_error());
}
?>

이 예에서는 test_db 라는 데이터베이스에 연결합니다. 데이터베이스 연결에 실패하면 오류 메시지를 출력합니다.

3. 쿼리를 실행하고 결과를 얻으십시오

필드 ID , 이름 , 가격create_at가 포함 된 제품 이라는 데이터 테이블이 있다고 가정합니다. 다음으로 데이터를 가져 오기 위해 SQL 쿼리를 작성하고 MySQLI_Query 함수를 사용하여 쿼리를 실행하고 결과를 반환합니다.

 <?php
$sql = "SELECT * FROM products";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // 출력 데이터
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
    }
} else {
    echo "데이터가 없습니다";
}
?>

이 쿼리는 모든 제품 목록을 반환하고 결과를 한 줄씩 출력합니다.

4. 데이터 필터링 및 정렬 기능을 구현합니다

사용자 경험을 향상시키기 위해 데이터의 필터링 및 정렬 기능을 구현할 수 있습니다. 가격과 이름으로 제품을 필터링하고 정렬하고 싶다고 가정하십시오.

필터 기능

URL 매개 변수를 수신하여 데이터를 필터링 할 수 있습니다. 예를 들어, 사용자는 50보다 큰 가격으로 제품을 걸러 내려고합니다. 다음과 같은 방법으로 구현할 수 있습니다.

 <?php
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sql = "SELECT * FROM products WHERE price > $price_filter";
$result = mysqli_query($conn, $sql);
?>

정렬 함수

또한 사용자는 데이터를 가격 또는 이름으로 정렬해야 할 수도 있습니다. 순서별로 사용하여이를 달성 할 수 있습니다.

 <?php
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$sql = "SELECT * FROM products ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);
?>

이 예에서 사용자는 정렬 된 필드 ( 정렬 ) 및 정렬 순서 ( 순서 , ASC 또는 DESC 일 수 있음)를 URL 매개 변수를 지정할 수 있습니다. 예를 들어, Sort = Price & Order = DESC는 내림차순으로 정렬됩니다.

5. 포괄적 인 필터링 및 정렬

필터링 및 정렬 기능을 동시에 구현하려면 두 가지 기능을 결합 할 수 있습니다.

 <?php
$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';

$sql = "SELECT * FROM products WHERE price > $price_filter ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);
?>

이러한 방식으로 사용자는 필터링 조건 (가격이 특정 값보다 큽니다)과 정렬 방법 (가격 또는 이름별로 정렬, 오름차순 또는 내림차순) 중에서 선택할 수 있습니다.

6. 완전한 예

다음은 필터링 및 정렬 기능을 결합한 완전한 PHP 샘플 코드입니다.

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
    die("연결이 실패했습니다: " . mysqli_connect_error());
}

$price_filter = isset($_GET['price']) ? $_GET['price'] : 0;
$sort_by = isset($_GET['sort']) ? $_GET['sort'] : 'price';
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';

$sql = "SELECT * FROM products WHERE price > $price_filter ORDER BY $sort_by $order";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Price: " . $row["price"]. "<br>";
    }
} else {
    echo "데이터가 없습니다";
}

mysqli_close($conn);
?>

이 예에서 사용자는 다음과 같은 URL을 통해 필터링 및 정렬 매개 변수를 전달할 수 있습니다.

  • http://m66.net/products.php?price=50&sort=name&order=asc : 가격이 50보다 큰 필터를 필터링하여 이름의 오름차순으로 정리합니다.

  • http://m66.net/products.php?price=100&sort=price&order=desc : 100보다 큰 가격으로 필터 제품을 필터링하여 내림차순 가격으로 정렬합니다.

7. 요약

이 기사에서는 MySQLI_Result 함수를 통해 PHP에서 서버 측 데이터 필터링 및 정렬 기능을 구현하는 방법을 소개합니다. 조항의 SQL의 위치순서를 결합함으로써 많은 양의 데이터를 효율적으로 처리하고 고객의 부담을 줄일 수 있습니다. 실제 응용 프로그램에서는 더 나은 사용자 경험을 제공하기 위해 필터링 조건 및 정렬 규칙을 조정할 수 있습니다.