Bonjour,
J'ai lu sur le forum qu'il était possible de faire une requête sql avec un champ imaginaire, pas présent dans ma table.
Dans mon cas j'aimerai afficher les id des produits où le périmètre (area) est inférieur à ce qui est rentré par l'utilisateur :
Ma fonction :
Mais j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public static function getDist($lat1, $lng1, $lat2, $lng2, $area) { $query = 'SELECT DISTINCT ps_activiteproduct.id_product, (6366*ACOS(COS(RADIANS(' . $lat1 . '))*COS(RADIANS(' . $lat2 . '))*COS(RADIANS(' . $lng2 . ')-RADIANS(' . $lng1 . '))+SIN(RADIANS(' . $lat1 . '))*SIN(RADIANS(' . $lat2 . ')))) AS area FROM ps_activiteproduct, ps_activite WHERE ps_activiteproduct.id_activite=ps_activite.id_activite AND area <= ' . $area . ' ORDER BY area ASC'; return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); }
Unknown column 'area' in 'where clause'
SELECT DISTINCT ps_activiteproduct.id_product, (6366*ACOS(COS(RADIANS(47.218371))*COS(RADIANS(46.8208))*COS(RADIANS(-1.88706)-RADIANS(-1.553621))+SIN(RADIANS(47.218371))*SIN(RADIANS(46.8208)))) AS area
FROM ps_activiteproduct, ps_activite
WHERE ps_activiteproduct.id_activite=ps_activite.id_activite
AND area <= 12
ORDER BY area ASC
Merci d'avance.
Partager