Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2015, 05:06
jlopezisern
 
Fecha de Ingreso: mayo-2014
Mensajes: 45
Antigüedad: 10 años
Puntos: 0
Error en código de cálculo de distancias

Tengo el siguiente código para el cálculo de distancias entre dos puntos:
include_once('../getBoundaries.php');
$box = getBoundaries($latitud, $longitud, $distanciausuario);
Función para acotar la distancia entre dos puntos.
Y la consulta:
$result = mysql_query('SELECT id_cliente, nombre, tipo, precio, icono1, localidad, (6371 * ACOS(
SIN(RADIANS(lat))
* SIN(RADIANS(' . $latitud . '))
+ COS(RADIANS(lng - ' . $longitud . '))
* COS(RADIANS(lat))
* COS(RADIANS(' . $latitud . '))
)
) AS distance
FROM restauracion
WHERE (lat BETWEEN ' . $box['min_lat']. ' AND ' . $box['max_lat'] . ')
AND (lng BETWEEN ' . $box['min_lng']. ' AND ' . $box['max_lng']. ')
HAVING distance < ' . $distanciausuario . '
ORDER BY distance ASC ');
Hasta ahí funciona bien, el problema es cuando añado otra variable en la cláusula WHERE que en realidad me filtra por un tipo de establecimiento: tipo IN('$tipos_trim'), quedando de la siguiente manera:

WHERE tipo IN('$tipos_trim')
AND (lat BETWEEN ' . $box['min_lat']. ' AND ' . $box['max_lat'] . ')
AND (lng BETWEEN ' . $box['min_lng']. ' AND ' . $box['max_lng']. ')
HAVING distance < ' . $distanciausuario . '
ORDER BY distance ASC ');
Que me da error en php.
En realidad son dos preguntas, una porqué utiliza ‘ . $variable . ‘ y no ‘$variable’ y dos, porqué me da error en el código cuando añado en la claúsula WHERE tipo IN('$tipos_trim').
Gracias de antemano a quién me pueda ayudar, pues no doy con ello.