prepare($sql); $stmt->bindParam(':secondordnum', $secondordnum, PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); $fav_item = [ 'secondordnum' => $secondordnum, 'deliverymethod' => $deliverymethod, 'address' => $address, 'receiver' => $receiver, 'tel' => $tel, 'carinfo' => $carinfo, 'delcompany' => $delcompany, 'chargedman' => $chargedman, 'chargedmantel' => $chargedmantel, 'delcaritem' => $delcaritem, 'delbranch' => $delbranch ]; if ($result) { $favorites = json_decode($result['favorites_list'], true) ?? []; $existingKey = false; // 고유한 항목을 찾기 위해 모든 정보를 비교합니다. foreach ($favorites as $key => $fav) { if ( $fav['secondordnum'] == $fav_item['secondordnum'] && $fav['deliverymethod'] == $fav_item['deliverymethod'] && $fav['address'] == $fav_item['address'] && $fav['receiver'] == $fav_item['receiver'] && $fav['tel'] == $fav_item['tel'] && $fav['carinfo'] == $fav_item['carinfo'] && $fav['delcompany'] == $fav_item['delcompany'] && $fav['chargedman'] == $fav_item['chargedman'] && $fav['chargedmantel'] == $fav_item['chargedmantel'] && $fav['delcaritem'] == $fav_item['delcaritem'] && $fav['delbranch'] == $fav_item['delbranch'] ) { $existingKey = $key; break; } } if ($existingKey !== false) { unset($favorites[$existingKey]); } else { $favorites[] = $fav_item; } $favorites_list = json_encode(array_values($favorites)); $sql = "UPDATE delivery_favorites SET favorites_list = :favorites_list WHERE secondordnum = :secondordnum"; } else { $favorites = [$fav_item]; $favorites_list = json_encode($favorites); $sql = "INSERT INTO delivery_favorites (secondordnum, favorites_list) VALUES (:secondordnum, :favorites_list)"; } $stmt = $pdo->prepare($sql); $stmt->bindParam(':favorites_list', $favorites_list); $stmt->bindParam(':secondordnum', $secondordnum, PDO::PARAM_INT); $stmt->execute(); echo json_encode(array("success" => true)); } catch (Exception $e) { error_log($e->getMessage()); echo json_encode(array("error" => "An error occurred while processing your request.")); } } else { echo json_encode(array("error" => "No secondordnum provided")); } ?>