63 lines
2.6 KiB
PHP
63 lines
2.6 KiB
PHP
|
|
<?php
|
||
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
|
||
|
|
$pdo = db_connect(); // 데이터베이스 연결
|
||
|
|
|
||
|
|
// PHP 오류를 로그 파일에 기록하도록 설정
|
||
|
|
ini_set('log_errors', 1);
|
||
|
|
ini_set('error_log', $_SERVER['DOCUMENT_ROOT'] . '/php_errors.log');
|
||
|
|
ini_set('display_errors', 0);
|
||
|
|
|
||
|
|
$secondordnum = isset($_GET['secondordnum']) ? $_GET['secondordnum'] : null;
|
||
|
|
|
||
|
|
header('Content-Type: application/json'); // JSON 형식으로 응답
|
||
|
|
|
||
|
|
if ($secondordnum) {
|
||
|
|
try {
|
||
|
|
// 즐겨찾기 정보를 먼저 가져옴
|
||
|
|
$sql = "SELECT favorites_list FROM delivery_favorites WHERE secondordnum = :secondordnum";
|
||
|
|
$stmt = $pdo->prepare($sql);
|
||
|
|
$stmt->bindParam(':secondordnum', $secondordnum, PDO::PARAM_INT);
|
||
|
|
$stmt->execute();
|
||
|
|
$favorites_result = $stmt->fetch(PDO::FETCH_ASSOC);
|
||
|
|
$favorites = $favorites_result ? json_decode($favorites_result['favorites_list'], true) : [];
|
||
|
|
|
||
|
|
// 기본 쿼리 작성
|
||
|
|
$sql = "SELECT deliverymethod, delcompany, address, delbranch, delbranchaddress, delcaritem, delcartel, loadplace, chargedmantel, chargedman
|
||
|
|
FROM motor
|
||
|
|
WHERE secondordnum = :secondordnum AND is_deleted IS NULL AND (chargedman IS NOT NULL or chargedman !='' ) ";
|
||
|
|
|
||
|
|
$stmt = $pdo->prepare($sql);
|
||
|
|
$stmt->bindParam(':secondordnum', $secondordnum, PDO::PARAM_INT);
|
||
|
|
$stmt->execute();
|
||
|
|
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||
|
|
|
||
|
|
// 즐겨찾기 목록과 결과 목록 비교 및 제외
|
||
|
|
$filtered_results = array_filter($results, function($result) use ($favorites) {
|
||
|
|
foreach ($favorites as $favorite) {
|
||
|
|
$match = true;
|
||
|
|
foreach ($favorite as $key => $value) {
|
||
|
|
// 공백이나 null 값을 제외하고 비교
|
||
|
|
if (!empty($value) && isset($result[$key]) && $result[$key] !== $value) {
|
||
|
|
$match = false;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if ($match) {
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return true;
|
||
|
|
});
|
||
|
|
|
||
|
|
// $favorites 값을 함께 반환
|
||
|
|
echo json_encode(['results' => array_values($filtered_results), 'favorites' => $favorites]);
|
||
|
|
} catch (Exception $e) {
|
||
|
|
error_log('Exception: ' . $e->getMessage() . ' in ' . $e->getFile() . ' on line ' . $e->getLine());
|
||
|
|
error_log($e->getTraceAsString());
|
||
|
|
echo json_encode(['error' => 'An error occurred while processing your request.']);
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
echo json_encode(['error' => 'No secondordnum provided']);
|
||
|
|
}
|
||
|
|
?>
|