yogiwhere/public/frontend2/get_markers.php

57 lines
2.3 KiB
PHP

<?php
require_once('../Connections/yogiwherequery.php');
// Connetti al database
$conn = new mysqli($servername, $username, $password, $database);
// Verifica la connessione
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Ottieni la latitudine e la longitudine dell'utente
if (isset($_POST['lat']) && isset($_POST['lng'])) {
$userLat = $_POST['lat'];
$userLng = $_POST['lng'];
$radius = 20; // Raggio in chilometri
// Query per trovare le scuole entro 20 km dalla posizione dell'utente
$query = "
SELECT yogaschool.idyogaschool, yogaschool.nameschool, yogaschool.latitude, yogaschool.longitude, yogaschool.shortschooldescription, yogaschool.address, yogaschool.city, yogaschool.zip, yogaschool.country, photoyogaschool.photofilename,
(6371 * acos(cos(radians($userLat)) * cos(radians(latitude)) * cos(radians(longitude) - radians($userLng)) + sin(radians($userLat)) * sin(radians(latitude)))) AS distance
FROM yogaschool LEFT JOIN photoyogaschool ON yogaschool.idyogaschool=photoyogaschool.idyogaschool AND photoyogaschool.priority='Y'
HAVING distance < $radius
ORDER BY distance";
$result = $conn->query($query);
$markers = array();
// Controlla se ci sono risultati
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$markers[] = array(
'idyogaschool' => $row['idyogaschool'],
'name' => $row['nameschool'],
'latitude' => $row['latitude'],
'longitude' => $row['longitude'],
'description' => $row['shortschooldescription'],
'address' => $row['address'],
'city' => $row['city'],
'zip' => $row['zip'],
'country' => $row['country'],
'image' => '',
'distance' => $row['distance'],
'photofilename' => $row['photofilename']
);
}
echo json_encode(array('status' => 'success', 'data' => $markers));
} else {
echo json_encode(array('status' => 'error', 'message' => 'Nessuna scuola trovata entro 20 km.'));
}
} else {
echo json_encode(array('status' => 'error', 'message' => 'Posizione utente non fornita.'));
}
$conn->close();