Foros del Web » Programando para Internet » PHP »

¿Como le adiciono una columna a el resultado de un query ?

Estas en el tema de ¿Como le adiciono una columna a el resultado de un query ? en el foro de PHP en Foros del Web. Hola: Estoy en un problema y no se como resolverlo. la pregunta es la siguiente: ¿Como hago para adicionarle a el resultado de un query ...
  #1 (permalink)  
Antiguo 30/06/2003, 18:20
 
Fecha de Ingreso: abril-2003
Ubicación: Bogota
Mensajes: 131
Antigüedad: 21 años
Puntos: 2
¿Como le adiciono una columna a el resultado de un query ?

Hola: Estoy en un problema y no se como resolverlo. la pregunta es la siguiente:

¿Como hago para adicionarle a el resultado de un query una columna?

No se si es clara la pregunta, o es posible hacerlo desde php, pero en coldfusion es posible hacerlo con la funcion AddColumnQuery, y estoy necesitando esta opcion.


Gracias. aunque yo creo que no es posible, cual seria la opcion de escape, o por lo menos como hago para tratar al objeto que devuelvo?
  #2 (permalink)  
Antiguo 30/06/2003, 20:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues todo depende de como hagas tu "fetch" de tu consulta ..

Si usas Mysql y haces mysql_fetch_array .. podrías usar funciones de tratamiento de arrays para añadir tu nueva columa o mejor dicho "sumar" tu array de tu consulta con tu array (de una columna) ...

Si usas mysql_fetch_object() .. ahí no sé como "sumale" tu nueva "columna" ..

En fin ... como veras, depende de cómo te gestiones la consulta. Y si no puedes "juntarlos" tratalos de forma independiente. Si usas arrays .. usa el mismo indice en comun parar tu $row[$indice] de tu consulta a tu BD .. y para tu otra "columna" .. Si son objetos .. lo mismo.

Si pones el código que usas seguro que se podrá orientar mejor sobre alguna solución.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 30/06/2003, 22:54
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Asumiendo que los queries fueran de la misma dimensión (cantidad de registros o rows), se me ocurre algo así:

Código PHP:
$query1=mysql_query("select * from tabla");
$query2=mysql_query("select dato from otratabla"); //esta es la de una sola columna, y la columna se llama "dato"
$contador=0;
while (
$rs1=mysql_fetch_array($query1)){
    foreach (
$rs1 as $llave => $valor){
    
$consolidado[$contador][$llave]=$valor;
    }
$consolidado[$contador]["dato"]=mysql_result($query2,$contador,0);
$contador++;

Con un poco de paciencia puedes convertir esto a una función o a una clase para hacerlo repetidamente, si es que así lo requieres...

NOTA: No he probado el código, pero creo que por ahí va la solución...
__________________
Manoloweb

Última edición por Manoloweb; 30/06/2003 a las 23:01
  #4 (permalink)  
Antiguo 01/07/2003, 02:43
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Lo siento, pero no entiendo que es lo que quieres hacer. Y como no conozco ColdFusion, esa funcion no me dice nada. ¿Podrias poner un ejemplo para que todos sepamos que es lo que necesitas? Porque yo asi de primeras te diria que si tienes un

SELECT campo1, campo2, campo3 FROM tabla

lo cambiases por

SELECT campo1, campo2, campo3, campo4 FROM tabla

y asi ya tienes una columna mas en tu consulta. Pero puede que no sea lo que quieres.

Saludos.

PD: Al no saber nada de coldfusion, no se como va su forma de tratar BD. Si quieres simularlo, tambien lo deberias explicar.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 01/07/2003, 03:51
 
Fecha de Ingreso: abril-2003
Ubicación: Bogota
Mensajes: 131
Antigüedad: 21 años
Puntos: 2
Bueno... lo que necesito hacer con la nueva pregunta es lo siguiente:

Resulta que yo arme una clase que al pasarle un query el arma un formulario, tanto para edicion,como visualizacion, nuevo, etc, y todo esta basado en la informacion que arroja el query, pero necesito devolver en una columna x un valor que solo puedo obtener al realizar otro query, si estuviera utilizando oracle, lo podria hacer utilizando los subqueries, y todo solucionado, pero como tengo mysql eso no lo puedo hacer y por eso, es que necesito hacer la consulta aparte que me arroje ese resultado y posteriormente asignarle este resultado como la columna x que necesito..

En coldfusion esta funcionalidad es posible, pero en php no he encontrado la funcion que haga eso, aunque la explicacion que me han dado esta viable, quisiera saber si esto puede ser mas directo, sin hacer ciclos, o alguna clase ya implementada


Espero haberme explicado bien
  #6 (permalink)  
Antiguo 01/07/2003, 08:04
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 2 meses
Puntos: 5
Pues el script que puse hace eso... no te sirvió?
__________________
Manoloweb
  #7 (permalink)  
Antiguo 01/07/2003, 21:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues .. yo creo que lo que tendrías que usar es SQL .. Mysql (hasta que llegue estable 4.1) no soporta subconsultas típo:

SELECT * FROM tabla WHERE campo IN (SELECT * FROM tabla)

Mysql usa para eso LEFT JOIN y demas historias (uniones e intersecciones) ..

Chekea este tema del manual de Mysql:
http://www.mysql.com/doc/en/ANSI_diff_Sub-selects.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 18:29.