Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/09/2014, 06:00
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta/dificultad con strings

En realidad lo que obtienes es el conjunto de valores para una query.
La query en SQL es la que te devolverá el JSON usando una función ST_AsGeoJSON.

Tu problema no está en el JSON, en todo caso, sino en la construcción del IN() de la consulta a la base.

¿Verificaste lo que te dije?
¿Miraste qué tan bien queda construida la consulta SQL?

Algo como esto alcanza para ver lo quese armó, y verificar dónde está el error:


Código PHP:
Ver original
  1. $metodo = $_POST['elemento2'];
  2. $metodo = str_replace("#",",",$metodo);
  3.  
  4. $query = "SELECT code, descripcion, ST_AsGeoJSON(the_geom, 4) AS geojson FROM vw_metodo where code in (".ltrim($metodo,',').") ORDER BY code  "
  5.  
  6. echo $query;

Que nos digas que no te funciona no es información suficiente. Necesitamos ver lo que tu ves para entender el problema, porque como ya te demostré, la cosa funciona.

Lo que sí noto es que estás usando ltrim(), con un caracter que se indica quitar...

Según dice el manual de referencia de PHP:
Cita:
string ltrim ( string $str [, string $character_mask ] )

Retira espacios en blanco (u otros caracteres) del inicio de un string.
Parámetros ¶

str

El string de entrada.

character_mask

Se puede también especificar los caracteres que se desean retirar por medio del parámetro character_mask. Simplemente se listan todos los caracteres que se quieren retirar. Con .. se puede especificar un rango de caracteres.
En otras palabras, estás quitando las comas que el SQL necesita para separar los valores de busqueda del IN().
¿Por qué las quitas?
En ese contexto, si tienes más de un valor, la query debe estar devolviendo un error de sintaxis...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)