Bonjour,

Je veux réaliser un système de trouver un magasin prêt de chez vous, l'utilisateur tape le nom de sa ville et le système repère tous les magasin proche de sa ville, j'utilise l'api de google map et pour ce faire je passe par une requête SQL pour calculer afin d'obtenir le résultat. J'ai une erreur comme quoi la synthaxe de ma requête n'est pas bonne.. La voici :

$formule   = "(6366*acos(cos(radians($latitude))*cos(radians(`lat`))*cos(radians(`lon`)-radians($longitude))+sin(radians($latitude)";
$sql       = "SELECT name, {$formule} AS dist FROM list_shops WHERE {$formule}<=500 ORDER BY dist ASC";

Je ne comprends pas pourquoi elle plante .. Si vous ave une idée ça serait super ;)

3 réponses


Balbert
Réponse acceptée

Bonjour @D1ablo,

Vous avez des erreurs de parenthèses.
Essayé ceci =>

$formule = "(6366*acos(cos(radians($latitude))*cos(radians(lat))*cos(radians(lon)-radians($longitude))+sin(radians($latitude))))";

Si sa ne marche pas, je vous conseil de reprendre calmement votre requete et bien verifier vos parenthèses.

Il te manque 3 parenthèses fermantes dans la formule (c'est ballot hein !!!)
Un conseil, fait les conversions en radians avant si c'est possible (en php pour$latitude et $longitude)
Pour le critère de la requête, ne répète pas $formule mais utilise dist.
Je ne sais pas à quoi correspondent les {} autour de $formule, si toi non plus, vire les.

Merci pour vos réponses ;)