Création d'une procédure stockée (pour trouver toutes les villes dans un rayon de x km)
bonjour tout le monde,
voila un bout de code qui est sensé me trouver toutes les villes dans un rayon de X kilomètres par rapport à un point GPS donné.
seulement la création de ma procédure stockée n'est pas correcte ! -_-
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| DROP FUNCTION IF EXISTS get_distance_metres|
CREATE FUNCTION get_distance_metres (latDepart DOUBLE, longDepart DOUBLE, latArrivee DOUBLE, longArrivee DOUBLE) RETURNS DOUBLE
BEGIN
DECLARE radLongDepart DOUBLE;
DECLARE radLatDepart DOUBLE;
DECLARE radLongArrivee DOUBLE;
DECLARE radLongArrivee DOUBLE;
DECLARE dlo DOUBLE;
DECLARE dla DOUBLE;
DECLARE a DOUBLE;
SET radLongDepart = RADIANS(longDepart);
SET radLatDepart = RADIANS(latDepart);
SET radLongArrivee = RADIANS(longArrivee);
SET radLongArrivee = RADIANS(latArrivee);
SET dlo = (radLongArrivee - radLongDepart) / 2;
SET dla = (radLongArrivee - radLatDepart) / 2;
SET a = SIN(dla) * SIN(dla) + COS(radLatDepart) * COS(radLongArrivee) * SIN(dlo) * SIN(dlo);
RETURN (6378137 * 2 * ATAN2(SQRT(a), SQRT(1 - a)));
END |
paramètres = $latitude, $longitude, $rayonMax (dans le futur code PHP)
SELECT *, get_distance_metres($latitude, $longitude, latitude, longitude) AS distance
FROM maps_ville
WHERE distance < $rayonMax
ORDER BY distance ASC |
voici l'erreur générée dans PhpMyAdmin :
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '|
CREATE FUNCTION get_distance_metres (latDepart DOUBLE, longDepart DOUBLE, lat' at line 1
pourriez-vous me dire ce que j'ai bien pu oublier svp ?? O_o
merci pour votre aide !