Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php header("Access-Control-Allow-Origin: *"); header('Content-Type: application/json')..

Decoded Output download

<?php 
header("Access-Control-Allow-Origin: *"); 
header('Content-Type: application/json'); 
error_reporting(0); 
 
// Database connection setup 
$host = 'localhost'; 
$username = 'newuser'; 
$password = 'newpassword'; 
$database = 'inomov07_yangidokon'; 
 
// MySQL connection 
$conn = mysqli_connect($host, $username, $password, $database); 
if (!$conn) { 
    echo json_encode(['error' => 'Database connection failed: ' . mysqli_connect_error()]); 
    exit; 
} 
 
// Parametrlarni olish va tekshirish 
$statistika = isset($_GET['statistika']) ? $_GET['statistika'] : ''; 
$startdate = isset($_GET['startdate']) ? $_GET['startdate'] : ''; 
$enddate = isset($_GET['enddate']) ? $_GET['enddate'] : ''; 
 
// Hafta va oy davomida barcha kunlarni hisoblash uchun yordamchi funksiya 
function getDatesInRange($start, $end, $interval = 'P1D') { 
    $period = new DatePeriod( 
        new DateTime($start), 
        new DateInterval($interval), 
        (new DateTime($end))->modify('+1 day') 
    ); 
 
    $dates = []; 
    foreach ($period as $date) { 
        $dates[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat = 0 
    } 
    return $dates; 
} 
 
if ($statistika == "statistikaline") { 
    // Barcha sanalarni olish 
    $dates = getDatesInRange($startdate, $enddate); 
 
    // SQL so'rovini tayyorlash 
    $sql = "SELECT  
                `sana`,  
                SUM(`berganpuli`) AS berganpuli,  
                SUM(`qarz`) AS qarz  
            FROM  
                (SELECT `sana`, `chek_id`, MAX(`berganpuli`) AS berganpuli, MAX(`qarz`) AS qarz  
                 FROM `history`  
                 GROUP BY `sana`, `chek_id`) AS grouped_records"; 
 
    if (!empty($startdate) && !empty($enddate)) { 
        $sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'"; 
    } 
 
    $sql .= " GROUP BY `sana` ORDER BY `sana` ASC"; 
 
    $result = mysqli_query($conn, $sql); 
 
    // Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash 
    if (mysqli_num_rows($result) > 0) { 
        while ($row = mysqli_fetch_assoc($result)) { 
            $dates[$row['sana']] = [ 
                'berganpuli' => (float)$row['berganpuli'], 
                'qarz' => (float)$row['qarz'], 
                'jami' => (float)$row['berganpuli'] + (float)$row['qarz'] 
            ]; 
        } 
    } 
 
    // Yakuniy formatdagi ma'lumotlarni tayyorlash 
    $data = []; 
    foreach ($dates as $date => $values) { 
        $data[] = [ 
            'date' => $date, 
            'qarz' => $values['jami'] 
        ]; 
    } 
 
    // JSON formatida natijani qaytarish 
    echo json_encode($data); 
}elseif ($statistika == "weekly" || $statistika == "monthly") { 
    // Haftalik yoki oylik sanalarni olish 
    $dates = getDatesInRange($startdate, $enddate); 
 
    // SQL so'rovini tayyorlash 
    $sql = "SELECT  
                `sana`,  
                SUM(`berganpuli`) AS jami_sotuv  
            FROM  
                (SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `berganpuli` FROM `history`) AS unique_records"; 
 
    if (!empty($startdate) && !empty($enddate)) { 
        $sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'"; 
    } 
 
    $sql .= " GROUP BY `sana` ORDER BY `sana` ASC"; 
 
    $result = mysqli_query($conn, $sql); 
 
    // Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash 
    if (mysqli_num_rows($result) > 0) { 
        while ($row = mysqli_fetch_assoc($result)) { 
            $dates[$row['sana']] = (float)$row['jami_sotuv']; 
        } 
    } 
 
    // Yakuniy formatdagi ma'lumotlarni tayyorlash 
    $data = []; 
    foreach ($dates as $date => $sales) { 
        $data[] = [ 
            'date' => $date, 
            'jami_sotuv' => $sales 
        ]; 
    } 
 
    echo json_encode($data); 
}elseif ($statistika == "statistikascale") { 
    // Sanalar filtrini aniqlash 
    $type = $_GET['type'] ?? "oylik"; // Default oylik 
    $startdate = $_GET['startdate'] ?? null; 
    $enddate = $_GET['enddate'] ?? null; 
 
    $whereClause = ""; 
    if ($type == "haftalik") { 
        $whereClause = "AND YEARWEEK(`sana`, 1) = YEARWEEK(CURDATE(), 1)"; 
    } elseif ($type == "oylik") { 
        $whereClause = "AND MONTH(`sana`) = MONTH(CURDATE()) AND YEAR(`sana`) = YEAR(CURDATE())"; 
    } elseif ($type == "custom" && $startdate && $enddate) { 
        $whereClause = "AND `sana` BETWEEN '$startdate' AND '$enddate'"; 
    } 
 
    // Asosiy so'rov 
    $sql = "SELECT `sklad_id`, SUM(`miqdor`) AS `total_miqdor` 
            FROM `history` 
            WHERE 1=1 $whereClause 
            GROUP BY `sklad_id`"; 
    $result = $conn->query($sql); 
 
    $chartData = []; 
    if ($result->num_rows > 0) { 
        while ($row = $result->fetch_assoc()) { 
            $sklad_id = $row['sklad_id']; 
            $miqdor = $row['total_miqdor']; 
 
            // Mahsulot nomini olish 
            $skladSql = "SELECT `nomi` FROM `sklad` WHERE `id` = $sklad_id"; 
            $skladResult = $conn->query($skladSql); 
 
            if ($skladResult->num_rows > 0) { 
                $skladRow = $skladResult->fetch_assoc(); 
                $nomi = $skladRow['nomi']; 
 
                // Ma'lumotni arrayga qo'shish 
                $chartData[] = [ 
                    'nomi' => $nomi, 
                    'miqdor' => $miqdor 
                ]; 
            } 
        } 
    } 
 
    // JSON formatida natija chiqarish 
    header('Content-Type: application/json'); 
    echo json_encode($chartData); 
}elseif ($statistika == "yangilinechart") { 
    // Startdate va Enddate-ni olamiz 
    $startDate = $_GET['startdate']; 
    $endDate = $_GET['enddate']; 
 
    // Sanalarni formatlash 
    $startDate = date('Y-m-d', strtotime($startDate)); 
    $endDate = date('Y-m-d', strtotime($endDate)); 
 
    // Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish 
    $period = new DatePeriod( 
        new DateTime($startDate), 
        new DateInterval('P1D'), 
        (new DateTime($endDate))->modify('+1 day') 
    ); 
 
    // Ma'lumotlarni yig'ish uchun array 
    $data = []; 
    foreach ($period as $date) { 
        $data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat 
    } 
 
    // SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz 
    $query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?"; 
    $stmt = $conn->prepare($query); 
    $stmt->bind_param("ss", $startDate, $endDate); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 
 
    while ($row = $result->fetch_assoc()) { 
        $sNarxi = $row['s_narxi']; // History jadvalidan olingan s_narxi 
        $kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi 
        $miqdor = $row['miqdor']; 
 
        // Foyda hisoblash 
        $profit = ($sNarxi - $kNarxi) * $miqdor; 
 
        // Natijalarni sana bo'yicha guruhlash 
        $dateKey = $row['sana']; 
        if (isset($data[$dateKey])) { 
            $data[$dateKey] += $profit; 
        } 
    } 
 
    // Natijalarni line chart uchun tayyorlash 
    $chartData = []; 
    foreach ($data as $date => $value) { 
        $chartData[] = [ 
            'date' => $date, 
            'profit' => $value 
        ]; 
    } 
 
    // JSON formatida qaytarish 
    header('Content-Type: application/json'); 
    echo json_encode($chartData); 
}elseif ($statistika == "yangilinechartzarar") { 
    // Startdate va Enddate-ni olamiz 
    $startDate = $_GET['startdate']; 
    $endDate = $_GET['enddate']; 
 
    // Sanalarni formatlash 
    $startDate = date('Y-m-d', strtotime($startDate)); 
    $endDate = date('Y-m-d', strtotime($endDate)); 
 
    // Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish 
    $period = new DatePeriod( 
        new DateTime($startDate), 
        new DateInterval('P1D'), 
        (new DateTime($endDate))->modify('+1 day') 
    ); 
 
    // Ma'lumotlarni yig'ish uchun array 
    $data = []; 
    foreach ($period as $date) { 
        $data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat 
    } 
 
    // SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz 
    $query = "SELECT sklad_id, miqdor, sana, k_narxi FROM history WHERE sana BETWEEN ? AND ?"; 
    $stmt = $conn->prepare($query); 
    $stmt->bind_param("ss", $startDate, $endDate); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 
 
    while ($row = $result->fetch_assoc()) { 
        $kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi 
        $miqdor = $row['miqdor']; 
 
        // Zararni hisoblash 
        $loss = $kNarxi * $miqdor; 
 
        // Natijalarni sana bo'yicha guruhlash 
        $dateKey = $row['sana']; 
        if (isset($data[$dateKey])) { 
            $data[$dateKey] += $loss; 
        } 
    } 
 
    // Natijalarni line chart uchun tayyorlash 
    $chartData = []; 
    foreach ($data as $date => $value) { 
        $chartData[] = [ 
            'date' => $date, 
            'loss' => $value 
        ]; 
    } 
 
    // JSON formatida qaytarish 
    header('Content-Type: application/json'); 
    echo json_encode($chartData); 
}elseif ($statistika == "statistikakategoriya") { 
    // Sanalar startdate va enddate orqali olinadi 
    $startdate = isset($_GET['startdate']) ? $_GET['startdate'] : null; 
    $enddate = isset($_GET['enddate']) ? $_GET['enddate'] : null; 
 
    // Sanalar formatini tekshirish 
    if (!$startdate || !$enddate) { 
        echo json_encode([ 
            "error" => "startdate va enddate parametrlarini yuboring" 
        ]); 
        exit; 
    } 
 
    // Sotilgan mahsulotlar bo'yicha statistikani chiqarish 
    $query = " 
        SELECT s.katalog, SUM(h.miqdor) AS sotilgan_miqdor 
        FROM history h 
        JOIN sklad s ON h.sklad_id = s.id 
        WHERE h.sana BETWEEN ? AND ? 
        GROUP BY s.katalog 
        ORDER BY sotilgan_miqdor DESC 
    "; 
 
    $stmt = $conn->prepare($query); 
    if (!$stmt) { 
        echo json_encode(["error" => "SQL so'rovini tayyorlashda xatolik: " . $conn->error]); 
        exit; 
    } 
 
    $stmt->bind_param("ss", $startdate, $enddate); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 
 
    $data = []; 
    while ($row = $result->fetch_assoc()) { 
        $data[] = [ 
            "katalog" => $row['katalog'], 
            "sotilgan_soni" => $row['sotilgan_miqdor'] 
        ]; 
    } 
 
    $stmt->close(); 
 
    // Natijani JSON formatida qaytarish 
    echo json_encode(["statistika" => $data]); 
    exit; 
}elseif ($statistika == "engkopstatis") { 
    $startdate = $_GET['startdate'] ?? null; // Boshlanish sanasi 
    $enddate = $_GET['enddate'] ?? null;   // Tugash sanasi 
 
    if (!$startdate || !$enddate) { 
        echo json_encode(["error" => "Iltimos, startdate va enddate ni kiriting."]); 
        exit; 
    } 
 
    // Sanalarni formatlash 
    $startdate = date('Y-m-d', strtotime($startdate)); 
    $enddate = date('Y-m-d', strtotime($enddate)); 
 
    // history jadvalidan kerakli ma'lumotlarni olish 
    $query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?"; 
    $stmt = $conn->prepare($query); 
    $stmt->bind_param("ss", $startdate, $enddate); 
    $stmt->execute(); 
    $result = $stmt->get_result(); 
 
    $profits = []; 
 
    if ($result && $result->num_rows > 0) { 
        while ($row = $result->fetch_assoc()) { 
            $skladId = $row['sklad_id']; 
            $miqdor = $row['miqdor']; 
            $sNarxi = $row['s_narxi']; 
            $kNarxi = $row['k_narxi']; 
 
            // Foydani hisoblash 
            $profit = ($sNarxi - $kNarxi) * $miqdor; 
 
            // Natijani profits arrayga qo'shish 
            if (isset($profits[$skladId])) { 
                $profits[$skladId]['foyda'] += $profit; 
                $profits[$skladId]['sotilgan_miqdor'] += $miqdor; 
            } else { 
                $profits[$skladId] = [ 
                    'sklad_id' => $skladId, 
                    'foyda' => $profit, 
                    'sotilgan_miqdor' => $miqdor 
                ]; 
            } 
        } 
    } 
 
    // JSON formatida javobni chiqarish 
    header('Content-Type: application/json'); 
    echo json_encode(array_values($profits)); 
}elseif ($statistika == "statistikalineqarz") { 
    // Barcha sanalarni olish 
    $dates = getDatesInRange($startdate, $enddate); 
 
    // SQL so'rovini tayyorlash 
    $sql = "SELECT  
                `sana`,  
                SUM(`qarz`) AS qarz  
            FROM  
                (SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `qarz` FROM `history`) AS unique_records"; 
 
    if (!empty($startdate) && !empty($enddate)) { 
        $sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'"; 
    } 
 
    $sql .= " GROUP BY `sana` ORDER BY `sana` ASC"; 
 
    $result = mysqli_query($conn, $sql); 
 
    // Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash 
    if (mysqli_num_rows($result) > 0) { 
        while ($row = mysqli_fetch_assoc($result)) { 
            $dates[$row['sana']] = (float)$row['qarz']; 
        } 
    } 
 
    // Yakuniy formatdagi ma'lumotlarni tayyorlash 
    $data = []; 
    foreach ($dates as $date => $sales) { 
        $data[] = [ 
            'date' => $date, 
            'qarz' => $sales 
        ]; 
    } 
 
    // JSON formatida natijani qaytarish 
    echo json_encode($data); 
 
} ?>

Did this file decode correctly?

Original Code

<?php
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
error_reporting(0);

// Database connection setup
$host = 'localhost';
$username = 'newuser';
$password = 'newpassword';
$database = 'inomov07_yangidokon';

// MySQL connection
$conn = mysqli_connect($host, $username, $password, $database);
if (!$conn) {
    echo json_encode(['error' => 'Database connection failed: ' . mysqli_connect_error()]);
    exit;
}

// Parametrlarni olish va tekshirish
$statistika = isset($_GET['statistika']) ? $_GET['statistika'] : '';
$startdate = isset($_GET['startdate']) ? $_GET['startdate'] : '';
$enddate = isset($_GET['enddate']) ? $_GET['enddate'] : '';

// Hafta va oy davomida barcha kunlarni hisoblash uchun yordamchi funksiya
function getDatesInRange($start, $end, $interval = 'P1D') {
    $period = new DatePeriod(
        new DateTime($start),
        new DateInterval($interval),
        (new DateTime($end))->modify('+1 day')
    );

    $dates = [];
    foreach ($period as $date) {
        $dates[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat = 0
    }
    return $dates;
}

if ($statistika == "statistikaline") {
    // Barcha sanalarni olish
    $dates = getDatesInRange($startdate, $enddate);

    // SQL so'rovini tayyorlash
    $sql = "SELECT 
                `sana`, 
                SUM(`berganpuli`) AS berganpuli, 
                SUM(`qarz`) AS qarz 
            FROM 
                (SELECT `sana`, `chek_id`, MAX(`berganpuli`) AS berganpuli, MAX(`qarz`) AS qarz 
                 FROM `history` 
                 GROUP BY `sana`, `chek_id`) AS grouped_records";

    if (!empty($startdate) && !empty($enddate)) {
        $sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
    }

    $sql .= " GROUP BY `sana` ORDER BY `sana` ASC";

    $result = mysqli_query($conn, $sql);

    // Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $dates[$row['sana']] = [
                'berganpuli' => (float)$row['berganpuli'],
                'qarz' => (float)$row['qarz'],
                'jami' => (float)$row['berganpuli'] + (float)$row['qarz']
            ];
        }
    }

    // Yakuniy formatdagi ma'lumotlarni tayyorlash
    $data = [];
    foreach ($dates as $date => $values) {
        $data[] = [
            'date' => $date,
            'qarz' => $values['jami']
        ];
    }

    // JSON formatida natijani qaytarish
    echo json_encode($data);
}elseif ($statistika == "weekly" || $statistika == "monthly") {
    // Haftalik yoki oylik sanalarni olish
    $dates = getDatesInRange($startdate, $enddate);

    // SQL so'rovini tayyorlash
    $sql = "SELECT 
                `sana`, 
                SUM(`berganpuli`) AS jami_sotuv 
            FROM 
                (SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `berganpuli` FROM `history`) AS unique_records";

    if (!empty($startdate) && !empty($enddate)) {
        $sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
    }

    $sql .= " GROUP BY `sana` ORDER BY `sana` ASC";

    $result = mysqli_query($conn, $sql);

    // Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $dates[$row['sana']] = (float)$row['jami_sotuv'];
        }
    }

    // Yakuniy formatdagi ma'lumotlarni tayyorlash
    $data = [];
    foreach ($dates as $date => $sales) {
        $data[] = [
            'date' => $date,
            'jami_sotuv' => $sales
        ];
    }

    echo json_encode($data);
}elseif ($statistika == "statistikascale") {
    // Sanalar filtrini aniqlash
    $type = $_GET['type'] ?? "oylik"; // Default oylik
    $startdate = $_GET['startdate'] ?? null;
    $enddate = $_GET['enddate'] ?? null;

    $whereClause = "";
    if ($type == "haftalik") {
        $whereClause = "AND YEARWEEK(`sana`, 1) = YEARWEEK(CURDATE(), 1)";
    } elseif ($type == "oylik") {
        $whereClause = "AND MONTH(`sana`) = MONTH(CURDATE()) AND YEAR(`sana`) = YEAR(CURDATE())";
    } elseif ($type == "custom" && $startdate && $enddate) {
        $whereClause = "AND `sana` BETWEEN '$startdate' AND '$enddate'";
    }

    // Asosiy so'rov
    $sql = "SELECT `sklad_id`, SUM(`miqdor`) AS `total_miqdor`
            FROM `history`
            WHERE 1=1 $whereClause
            GROUP BY `sklad_id`";
    $result = $conn->query($sql);

    $chartData = [];
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $sklad_id = $row['sklad_id'];
            $miqdor = $row['total_miqdor'];

            // Mahsulot nomini olish
            $skladSql = "SELECT `nomi` FROM `sklad` WHERE `id` = $sklad_id";
            $skladResult = $conn->query($skladSql);

            if ($skladResult->num_rows > 0) {
                $skladRow = $skladResult->fetch_assoc();
                $nomi = $skladRow['nomi'];

                // Ma'lumotni arrayga qo'shish
                $chartData[] = [
                    'nomi' => $nomi,
                    'miqdor' => $miqdor
                ];
            }
        }
    }

    // JSON formatida natija chiqarish
    header('Content-Type: application/json');
    echo json_encode($chartData);
}elseif ($statistika == "yangilinechart") {
    // Startdate va Enddate-ni olamiz
    $startDate = $_GET['startdate'];
    $endDate = $_GET['enddate'];

    // Sanalarni formatlash
    $startDate = date('Y-m-d', strtotime($startDate));
    $endDate = date('Y-m-d', strtotime($endDate));

    // Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish
    $period = new DatePeriod(
        new DateTime($startDate),
        new DateInterval('P1D'),
        (new DateTime($endDate))->modify('+1 day')
    );

    // Ma'lumotlarni yig'ish uchun array
    $data = [];
    foreach ($period as $date) {
        $data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat
    }

    // SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz
    $query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("ss", $startDate, $endDate);
    $stmt->execute();
    $result = $stmt->get_result();

    while ($row = $result->fetch_assoc()) {
        $sNarxi = $row['s_narxi']; // History jadvalidan olingan s_narxi
        $kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi
        $miqdor = $row['miqdor'];

        // Foyda hisoblash
        $profit = ($sNarxi - $kNarxi) * $miqdor;

        // Natijalarni sana bo'yicha guruhlash
        $dateKey = $row['sana'];
        if (isset($data[$dateKey])) {
            $data[$dateKey] += $profit;
        }
    }

    // Natijalarni line chart uchun tayyorlash
    $chartData = [];
    foreach ($data as $date => $value) {
        $chartData[] = [
            'date' => $date,
            'profit' => $value
        ];
    }

    // JSON formatida qaytarish
    header('Content-Type: application/json');
    echo json_encode($chartData);
}elseif ($statistika == "yangilinechartzarar") {
    // Startdate va Enddate-ni olamiz
    $startDate = $_GET['startdate'];
    $endDate = $_GET['enddate'];

    // Sanalarni formatlash
    $startDate = date('Y-m-d', strtotime($startDate));
    $endDate = date('Y-m-d', strtotime($endDate));

    // Savdo bo'lmagan kunlarni kiritish uchun barcha kunlarni yaratish
    $period = new DatePeriod(
        new DateTime($startDate),
        new DateInterval('P1D'),
        (new DateTime($endDate))->modify('+1 day')
    );

    // Ma'lumotlarni yig'ish uchun array
    $data = [];
    foreach ($period as $date) {
        $data[$date->format('Y-m-d')] = 0; // Har bir kun uchun boshlang'ich qiymat
    }

    // SQL so'rovi: `history` jadvalidan kerakli ma'lumotlarni olamiz
    $query = "SELECT sklad_id, miqdor, sana, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("ss", $startDate, $endDate);
    $stmt->execute();
    $result = $stmt->get_result();

    while ($row = $result->fetch_assoc()) {
        $kNarxi = $row['k_narxi']; // History jadvalidan olingan k_narxi
        $miqdor = $row['miqdor'];

        // Zararni hisoblash
        $loss = $kNarxi * $miqdor;

        // Natijalarni sana bo'yicha guruhlash
        $dateKey = $row['sana'];
        if (isset($data[$dateKey])) {
            $data[$dateKey] += $loss;
        }
    }

    // Natijalarni line chart uchun tayyorlash
    $chartData = [];
    foreach ($data as $date => $value) {
        $chartData[] = [
            'date' => $date,
            'loss' => $value
        ];
    }

    // JSON formatida qaytarish
    header('Content-Type: application/json');
    echo json_encode($chartData);
}elseif ($statistika == "statistikakategoriya") {
    // Sanalar startdate va enddate orqali olinadi
    $startdate = isset($_GET['startdate']) ? $_GET['startdate'] : null;
    $enddate = isset($_GET['enddate']) ? $_GET['enddate'] : null;

    // Sanalar formatini tekshirish
    if (!$startdate || !$enddate) {
        echo json_encode([
            "error" => "startdate va enddate parametrlarini yuboring"
        ]);
        exit;
    }

    // Sotilgan mahsulotlar bo'yicha statistikani chiqarish
    $query = "
        SELECT s.katalog, SUM(h.miqdor) AS sotilgan_miqdor
        FROM history h
        JOIN sklad s ON h.sklad_id = s.id
        WHERE h.sana BETWEEN ? AND ?
        GROUP BY s.katalog
        ORDER BY sotilgan_miqdor DESC
    ";

    $stmt = $conn->prepare($query);
    if (!$stmt) {
        echo json_encode(["error" => "SQL so'rovini tayyorlashda xatolik: " . $conn->error]);
        exit;
    }

    $stmt->bind_param("ss", $startdate, $enddate);
    $stmt->execute();
    $result = $stmt->get_result();

    $data = [];
    while ($row = $result->fetch_assoc()) {
        $data[] = [
            "katalog" => $row['katalog'],
            "sotilgan_soni" => $row['sotilgan_miqdor']
        ];
    }

    $stmt->close();

    // Natijani JSON formatida qaytarish
    echo json_encode(["statistika" => $data]);
    exit;
}elseif ($statistika == "engkopstatis") {
    $startdate = $_GET['startdate'] ?? null; // Boshlanish sanasi
    $enddate = $_GET['enddate'] ?? null;   // Tugash sanasi

    if (!$startdate || !$enddate) {
        echo json_encode(["error" => "Iltimos, startdate va enddate ni kiriting."]);
        exit;
    }

    // Sanalarni formatlash
    $startdate = date('Y-m-d', strtotime($startdate));
    $enddate = date('Y-m-d', strtotime($enddate));

    // history jadvalidan kerakli ma'lumotlarni olish
    $query = "SELECT sklad_id, miqdor, sana, s_narxi, k_narxi FROM history WHERE sana BETWEEN ? AND ?";
    $stmt = $conn->prepare($query);
    $stmt->bind_param("ss", $startdate, $enddate);
    $stmt->execute();
    $result = $stmt->get_result();

    $profits = [];

    if ($result && $result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $skladId = $row['sklad_id'];
            $miqdor = $row['miqdor'];
            $sNarxi = $row['s_narxi'];
            $kNarxi = $row['k_narxi'];

            // Foydani hisoblash
            $profit = ($sNarxi - $kNarxi) * $miqdor;

            // Natijani profits arrayga qo'shish
            if (isset($profits[$skladId])) {
                $profits[$skladId]['foyda'] += $profit;
                $profits[$skladId]['sotilgan_miqdor'] += $miqdor;
            } else {
                $profits[$skladId] = [
                    'sklad_id' => $skladId,
                    'foyda' => $profit,
                    'sotilgan_miqdor' => $miqdor
                ];
            }
        }
    }

    // JSON formatida javobni chiqarish
    header('Content-Type: application/json');
    echo json_encode(array_values($profits));
}elseif ($statistika == "statistikalineqarz") {
    // Barcha sanalarni olish
    $dates = getDatesInRange($startdate, $enddate);

    // SQL so'rovini tayyorlash
    $sql = "SELECT 
                `sana`, 
                SUM(`qarz`) AS qarz 
            FROM 
                (SELECT DISTINCT `sana`, `vaqti`, `chek_id`, `qarz` FROM `history`) AS unique_records";

    if (!empty($startdate) && !empty($enddate)) {
        $sql .= " WHERE `sana` BETWEEN '$startdate' AND '$enddate'";
    }

    $sql .= " GROUP BY `sana` ORDER BY `sana` ASC";

    $result = mysqli_query($conn, $sql);

    // Ma'lumotlarni tekshirish va mavjud sanalar uchun sotuvlarni yangilash
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            $dates[$row['sana']] = (float)$row['qarz'];
        }
    }

    // Yakuniy formatdagi ma'lumotlarni tayyorlash
    $data = [];
    foreach ($dates as $date => $sales) {
        $data[] = [
            'date' => $date,
            'qarz' => $sales
        ];
    }

    // JSON formatida natijani qaytarish
    echo json_encode($data);

}

Function Calls

None

Variables

None

Stats

MD5 91b5f4ed48a1d587d98eaf2fef72fea0
Eval Count 0
Decode Time 81 ms