Ver Mensaje Individual
  #8 (permalink)  
Antiguo 15/02/2013, 09:00
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: agregar datos a un arreglo json

Hola triby ya hice las correcciones, efectivamente ciudades y estados estan en la misma tabla t_estados

En fin creo que ese era el detalle que estaba causando las repeticiones, asi deje la consulta y parece que ya funciona:

Código MySQL:
Ver original
  1. $query = "select t_u.*, t_edo.nombre as nestado, t_edo.nombre as nciudad, t_mun.nombre_municipio as nmunicipio";
  2. $query .= " from t_usuarios t_u";
  3. $query .= " LEFT JOIN t_estados t_edo on t_edo.estado = t_u.estado AND t_edo.ciudad = t_u.ciudad";
  4. $query .= " LEFT JOIN t_municipio t_mun on t_mun.municipio = t_u.municipio";
  5. $query .= " where t_u.status='' and (t_u.nombre LIKE '%$q%' OR t_u.matricula LIKE '%$q%') limit $offset,$rows";

Pero tengo un problema, que estoy conciente que es porque la tabla esta mal diseñada per aclaro que yo no la hice, aun así, me tengo que adaptar a lo que ya tienen :/

mira esta es la tabla (datos ejemplo):

t_estados

Código:
+----------+---------+-----------+
|  estado  | ciudad  | nombre    |
+--------- +---------+-----------+
|  001     |         | Veracruz  |    
+--------- +---------+-----------+
|  001     |   0001  |  Xalapa   | 
+--------- +---------+-----------+
|  001     |   0002  |  Cordoba  | 
+--------- +---------+-----------+
|  002     |         | Tamulipas | 
+--------- +---------+-----------+
|  002     |   0003  | Tampico   | 
+--------- +---------+-----------+
|  002     |   0004  | Reynosa   | 
+--------- +---------+-----------+
Podrás notar que un estado se identifica teniendo vacio el campo ciudad y el problemon es que ambos campos estado y ciudad comparten el campo nombre.

Entonces en mi consulta yo tengo asi:

t_edo.nombre as nestado, t_edo.nombre as nciudad

lo que me da como resultado que nestado y nciudad sean iguales, es decir tengan el mismo valor (el de la ciudad)...

osea me sale por ejemplo:

{"matricula":"0078190","nombre":"TROLLENCIO","sexo ":"M","estado":"001","ciudad":"0001","municipio":"9101","nestado":"Xalapa","nciudad":"Xalapa","nmunicipio":"lo que sea","fecha_nacim":"12.10.1960"},

como podria especificar en la consulta que el estado es el que tiene el campo ciudad vacio? y eso se haria en el select? o en el where?

Gracias

Última edición por catpaw; 15/02/2013 a las 09:07