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 ! -_-
voici l'erreur générée dans PhpMyAdmin :
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
#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 !
Partager