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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !