Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] agregar una fila ficticia en el resultado de la consulta

Estas en el tema de agregar una fila ficticia en el resultado de la consulta en el foro de Mysql en Foros del Web. hola, no se si esto sea posible o si me estoy mafufando mucho, pero esto me serviria un buen. uso un framework de jquery que ...
  #1 (permalink)  
Antiguo 16/04/2013, 09:23
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
agregar una fila ficticia en el resultado de la consulta

hola, no se si esto sea posible o si me estoy mafufando mucho, pero esto me serviria un buen.

uso un framework de jquery que me proporciona un combogrid que toma los datos de un php que devuelve resultados de mi consulta en json.

la tabla es:

Código:
clave    |     nombre
------------------------
0001     |     nombre1
0002     |     nombre2
0003     |     nombre3
y el combo se presenta de igual manera.

lo que necesito es agregar esta linea:

Código:
clave    |     nombre
------------------------
         |     Todas
0001     |     nombre1
0002     |     nombre2
0003     |     nombre3
agregar una fila con la clave vacia y en nombre que sea Todas, asi tengo la opcion de en la consulta que hago cuando seleccionan un item del combogrid mostrar todas las claves de mi tabla.

espero haberme explicado

gracias de antemano.
  #2 (permalink)  
Antiguo 16/04/2013, 10:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: agregar una fila ficticia en el resultado de la consulta

Bueno, lo del combo, el json y todo los demás, es tema de otros foros.
Lo que sí puedo sugerirte es que generes un registro artificialmente por medio de un UNION ALL en la consulta. No es un modo limpio, pero funcionará:
Código MySQL:
Ver original
  1. SELECT '' Clave, 'Todas' Nombre
  2.     (SELECT Clave, Nombre
  3.     FROM tabla
  4.     WHERE condiciones
  5.     ORDER BY Clave) Tabla1
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 16/04/2013, 10:24
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: agregar una fila ficticia en el resultado de la consulta

Hola gnzsoloyo, gracias por responder,

sobre

Cita:
Bueno, lo del combo, el json y todo los demás, es tema de otros foros
solo lo mencione para aclarar un poco el contexto de mi pregunta

ahora me esta saliendo un error:

Error Code: 1222
The used SELECT statements have a different number of columns

entrando en mas detalles la tabla es t_claves:

Código:
asociacion  |  clave    |     nombre
----------------------------------------------
0000000001  |           |     nombre      
0000000001  |  0001     |     nombre1
0000000001  |  0002     |     nombre2
0000000001  |  0003     |     nombre3
Asi tengo la consulta:
Código MySQL:
Ver original
  1. SELECT '' clave, 'Todas' nombre, 'Todas' clavenom
  2. (SELECT *, CONCAT(clave,' - ', nombre) AS clavenom
  3. FROM t_claves
  4. WHERE asociacion LIKE '0000000001' AND clave!='' AND (clave!='4171' AND clave!='4172' AND clave!='4173')
  5. ORDER BY clave) t_claves

le agregue 'Todas' clavenom para igualar segun yo el numero de columnas pero me sigue marcando el error

gracias
  #4 (permalink)  
Antiguo 16/04/2013, 10:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: agregar una fila ficticia en el resultado de la consulta

Código MySQL:
Ver original
  1. SELECT *, CONCAT(clave,' - ', nombre) AS clavenom
  2. FROM t_claves
  3. WHERE asociacion LIKE '0000000001' AND clave!='' AND (asociacion LIKE '' OR nombre LIKE '') AND (clave!='4171' AND clave!='4172' AND clave!='4173')
  4. ORDER BY clave
Una consulta que se va a usar con un UNION no puede invocarse jamás con asterisco, a menos que las otras consultas devuelvan la misma cantidad de columnas.
Eso es básico...

El requisito sine qua non de UNION y UNION ALL es que todos los select tengan exactamente la misma cantidad de columnas de salida.

Siempre.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 16/04/2013, 10:36
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 13 años, 11 meses
Puntos: 23
Respuesta: agregar una fila ficticia en el resultado de la consulta

Si ya vi me falto agregar la asociacion

Código MySQL:
Ver original
  1. SELECT '0000000001' asociacion, '' clave, 'Todas' nombre, 'Todas' clavenom
  2. (SELECT *, CONCAT(clave,' - ', nombre) AS clavenom
  3. FROM t_claves
  4. WHERE asociacion LIKE '0000000001' AND clave!='' AND (clave!='4171' AND clave!='4172' AND clave!='4173')
  5. ORDER BY clave) t_claves

ya salio mil gracias

amo mysql todo lo puede :')

Etiquetas: fila, php, resultado, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:10.