PHP에서 MySQLI Extension 라이브러리는 MySQL 데이터베이스와의 상호 작용을위한 풍부한 기능을 제공합니다. mysqli_result는 편리한 방식으로 쿼리 결과를 얻을 수있는 일반적인 결과 세트 세트 객체입니다. 이 기사는 예제를 사용하여 MySQLI_RESULT 기능을 사용하여 서버 측 데이터 필터링 및 정렬 기능을 구현하는 방법을 소개합니다.
PHP 웹 애플리케이션을 구축 할 때 많은 경우 많은 양의 데이터를 처리해야합니다. 클라이언트 에서이 데이터를 필터링하고 정렬하면 사용자에게 불필요한 대기 시간이 발생할 수 있습니다. 효율성을 향상시키기 위해 필터링 및 정렬 로직을 서버 측에 실행할 수 있습니다. 이 기사는 PHP의 MySQLI_Result를 통해이 목표를 달성하는 방법을 설명합니다.
먼저 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 라는 데이터베이스에 연결합니다. 데이터베이스 연결에 실패하면 오류 메시지를 출력합니다.
필드 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 "데이터가 없습니다";
}
?>
이 쿼리는 모든 제품 목록을 반환하고 결과를 한 줄씩 출력합니다.
사용자 경험을 향상시키기 위해 데이터의 필터링 및 정렬 기능을 구현할 수 있습니다. 가격과 이름으로 제품을 필터링하고 정렬하고 싶다고 가정하십시오.
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는 내림차순으로 정렬됩니다.
필터링 및 정렬 기능을 동시에 구현하려면 두 가지 기능을 결합 할 수 있습니다.
<?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);
?>
이러한 방식으로 사용자는 필터링 조건 (가격이 특정 값보다 큽니다)과 정렬 방법 (가격 또는 이름별로 정렬, 오름차순 또는 내림차순) 중에서 선택할 수 있습니다.
다음은 필터링 및 정렬 기능을 결합한 완전한 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보다 큰 가격으로 필터 제품을 필터링하여 내림차순 가격으로 정렬합니다.
이 기사에서는 MySQLI_Result 함수를 통해 PHP에서 서버 측 데이터 필터링 및 정렬 기능을 구현하는 방법을 소개합니다. 조항의 SQL의 위치 와 순서를 결합함으로써 많은 양의 데이터를 효율적으로 처리하고 고객의 부담을 줄일 수 있습니다. 실제 응용 프로그램에서는 더 나은 사용자 경험을 제공하기 위해 필터링 조건 및 정렬 규칙을 조정할 수 있습니다.