|
Server IP : 217.21.85.138 / Your IP : 216.73.216.103 Web Server : LiteSpeed System : Linux in-mum-web906.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u915722082 ( 915722082) PHP Version : 7.4.33 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : OFF | cURL : ON | WGET : ON | Perl : OFF | Python : OFF Directory (0755) : /home/u915722082/.nvm/../public_html/invoice/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
session_start();
require_once '../../../db.php';
$pid = isset($_POST['pid']) ? intval($_POST['pid']) : 0;
$variations = isset($_POST['variations']) ? json_decode($_POST['variations'], true) : [];
// Arrays to keep track of variations
$existingVariations = [];
$variationsToDelete = [];
$variationsToUpdate = [];
$variationsToInsert = [];
// Fetch existing variations
$query = "SELECT PVID, VARIATION_CHAR, VARIATION FROM pro_variation WHERE PID = ?";
$stmt = $con->prepare($query);
$stmt->bind_param('i', $pid);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$existingVariations[$row['VARIATION_CHAR']] = [
'PVID' => $row['PVID'],
'VARIATION' => $row['VARIATION']
];
}
$stmt->close();
// Process incoming variations
foreach ($variations as $variation) {
$variation3 = mysqli_real_escape_string($con, $variation['variation3']);
$variation4 = mysqli_real_escape_string($con, $variation['variation4']);
if (!empty($variation3)) {
if (isset($existingVariations[$variation3])) {
// Variation exists, prepare for update if changed
if ($existingVariations[$variation3]['VARIATION'] !== $variation4) {
$variationsToUpdate[] = [
'PVID' => $existingVariations[$variation3]['PVID'],
'VARIATION' => $variation4
];
}
// Remove from deletion list
unset($existingVariations[$variation3]);
} else {
// Variation does not exist, prepare for insertion
$variationsToInsert[] = [
'PID' => $pid,
'VARIATION_CHAR' => $variation3,
'VARIATION' => $variation4
];
}
}
}
// Remaining existing variations are to be deleted
foreach ($existingVariations as $variation) {
$variationsToDelete[] = $variation['PVID'];
}
// Perform database operations
$con->autocommit(false);
try {
// Delete variations
foreach ($variationsToDelete as $pvid) {
$stmtDelete = $con->prepare("DELETE FROM pro_variation WHERE PVID = ?");
$stmtDelete->bind_param('i', $pvid);
$stmtDelete->execute();
$stmtDelete->close();
}
// Insert new variations
foreach ($variationsToInsert as $variation) {
$stmtInsert = $con->prepare("INSERT INTO pro_variation (PID, VARIATION_CHAR, VARIATION) VALUES (?, ?, ?)");
$stmtInsert->bind_param('iss', $variation['PID'], $variation['VARIATION_CHAR'], $variation['VARIATION']);
$stmtInsert->execute();
$stmtInsert->close();
}
// Update existing variations
foreach ($variationsToUpdate as $variation) {
$stmtUpdate = $con->prepare("UPDATE pro_variation SET VARIATION = ? WHERE PVID = ?");
$stmtUpdate->bind_param('si', $variation['VARIATION'], $variation['PVID']);
$stmtUpdate->execute();
$stmtUpdate->close();
}
$con->commit();
echo json_encode(['status' => 'success']);
} catch (Exception $e) {
$con->rollback();
echo json_encode(['status' => 'error', 'message' => $e->getMessage()]);
}
$con->autocommit(true);
?>