Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2015, 07:24
jlopezisern
 
Fecha de Ingreso: mayo-2014
Mensajes: 45
Antigüedad: 10 años, 9 meses
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:
Código PHP:
Ver original
  1. include_once('../getBoundaries.php');
  2. $box = getBoundaries($latitud, $longitud, $distanciausuario);
Función para acotar la distancia entre dos puntos.
Y la consulta:
Código PHP:
Ver original
  1. $result = mysql_query('SELECT id_cliente, nombre, tipo, precio, icono1, localidad, (6371 * ACOS(
  2.                                            SIN(RADIANS(lat))
  3.                                            * SIN(RADIANS(' . $latitud . '))
  4.                                            + COS(RADIANS(lng - ' . $longitud . '))
  5.                                            * COS(RADIANS(lat))
  6.                                            * COS(RADIANS(' . $latitud . '))
  7.                                            )
  8.                               ) AS distance
  9.                     FROM restauracion
  10.                     WHERE (lat BETWEEN ' . $box['min_lat']. ' AND ' . $box['max_lat'] . ')
  11.                     AND (lng BETWEEN ' . $box['min_lng']. ' AND ' . $box['max_lng']. ')
  12.                     HAVING distance  < ' . $distanciausuario . '                                      
  13.                     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:

Código SQL:
Ver original
  1. WHERE tipo IN('$tipos_trim')
  2.                      AND (lat BETWEEN ' . $box['min_lat']. ' AND ' . $box['max_lat'] . ')
  3.                      AND (lng BETWEEN ' . $box['min_lng']. ' AND ' . $box['max_lng']. ')
  4.                      HAVING distance  < ' . $distanciausuario . '                                      
  5.                      ORDER BY distance ASC ');
Que me da error en php.
El error que da es:
Código PHP:
Ver original
  1. Parse error: syntax error, unexpected T_VARIABLE in /home/guiamexc/public_html/AccesoDatos/phpconsult/apartados/tiposComer.php on line 39
La línea 39 corresponde a:
Código SQL:
Ver original
  1. WHERE tipo IN('$tipos_trim')

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.

Última edición por gnzsoloyo; 10/12/2015 a las 07:39