PHP - Error en código de cálculo de distancias

 
Vista:
sin imagen de perfil

Error en código de cálculo de distancias

Publicado por Joaquín (9 intervenciones) el 10/12/2015 12:39:06
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:
1
2
3
4
5
6
7
8
9
10
11
12
13
$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:

1
2
3
4
5
6
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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder