<?php
// Datubāzes savienojums
$servername = "109.106.254.1";
$username = "u353443769_beis";
$password = 'Te$t@dm1n';
$dbname = "u353443769_beis";

// Izveido savienojumu
$conn = new mysqli($servername, $username, $password, $dbname);

// Pārbauda savienojumu
if ($conn->connect_error) {
    die("Savienojums neizdevās: " . $conn->connect_error);
}

// Sākotnējā SQL vaicājuma izveidošana
$sql = "SELECT pav_gra_postsi.id, pav_gra_postsi.imageid, pav_gra_postsi.header, pav_gra_postsi.autor, pav_gra_postsi.rating 
        FROM pav_gra_postsi 
        JOIN pav_gra_kategj ON pav_gra_postsi.id = pav_gra_kategj.post_id";

// Pārbauda, vai ir sniegts search parametrs un apstrādā filtrēšanu atbilstoši
$whereClauses = [];
if (isset($_GET['search']) && !empty($_GET['search'])) {
    $searchTerm = $conn->real_escape_string($_GET['search']);
    $whereClauses[] = "pav_gra_postsi.header LIKE '%$searchTerm%'";
}

// Pārbauda, vai ir sniegts category parametrs un apstrādā filtrēšanu atbilstoši
if (isset($_GET['category']) && $_GET['category'] !== '') {
    $category = intval($_GET['category']);
    $whereClauses[] = "pav_gra_kategj.kateg = $category";
}

// Pievieno WHERE klauzulu, ja ir nosacījumi
if (count($whereClauses) > 0) {
    $sql .= " WHERE " . implode(" AND ", $whereClauses);
}

// Pārbauda, vai ir sniegts sortBy parametrs un apstrādā kārtējās secības kritēriju
if (isset($_GET['sortBy']) && $_GET['sortBy'] === 'popularity') {
    $sql .= " ORDER BY pav_gra_postsi.rating DESC"; // Kārto pēc vērtējuma dilstošā secībā
} else {
    $sql .= " ORDER BY pav_gra_postsi.id ASC"; // Noklusējuma kārtošana pēc ID augošā secībā
}

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Katras rindas dati
    $posts = array();
    while($row = $result->fetch_assoc()) {
        $posts[] = $row;
    }
    // Nosūta ierakstu datus kā JSON atbildi
    header('Content-Type: application/json');
    echo json_encode($posts);
} else {
    echo json_encode(['error' => 'Nav atrasti ieraksti']);
}

// Aizver datubāzes savienojumu
$conn->close();
?>
