Inicio arrow Foros de soporte
 


query problema - 2007/11/06 11:39 Qué tal amigos, verán tengo un leve problema con un query. Por necesidades me pueden llegar para hacer una consulta uno u otro parámetro, en este caso idAccion o idSubaccion. Les pongo las tablas:

table subaccion (
idSubaccion
nombreSubaccion
numeroSubaccion
idAccion
idDependencia
subdependencia
PRIMARY KEY (idSubaccion)
FOREIGN KEY (idAccion) REFERENCES accion(idAccion)
FOREIGN KEY (idDependencia) REFERENCES dependencia(idDependencia)
)

table presupuesto(
idPresupuesto
presu1
presu2
idSubaccion
idUmedida
PRIMARY KEY (idPresupuesto)
FOREIGN KEY (idUmedida) REFERENCES umedida(idUmedida)
FOREIGN KEY (idSubaccion) REFERENCES pago(idSubaccion)
)

table dependencia(
idDependencia
nombreDependencia
PRIMARY KEY (idDependencia)
)

Luego si tengo en el código:


if ($idSubaccion!=0){
$lsQuery = "";
$resSub = @mysql_query($lsQuery);
}else{
$lsQuery = "SELECT a.nombreSubaccion, a.digito, b.nombreDependencia, c.presu1, c.presu2"
. " FROM subaccion a INNER JOIN dependencia b ON b.idDependencia = a.subdependencia"
. " INNER JOIN presupuesto c ON c.idSubaccion = a.idSubaccion"
. " WHERE idAccion = '$idAccion'";
$resSub = @mysql_query($lsQuery);

}

Si tengo el dato idAccion se ejecuta el else, este query no me da problema alguno, se ejecuta correctamente, el problema es cuando me mandan el idSubaccion, lo he intentado de las siguientes maneras:

$lsQuery = "SELECT a.nombreSubaccion, b.nombreDependencia, c.presu1, c.presu2"
. " FROM subaccion a INNER JOIN dependencia b ON b.idDependencia = a.subdependencia"
. " INNER JOIN presupuesto c ON c.idSubaccion = a.idSubaccion"
. " WHERE idSubaccion = '$idSubaccion'";

o:
$lsQuery = "SELECT a.nombreSubaccion,b.nombreDependencia, c.presu1, c.presu2 FROM subaccion a, presupuesto c INNER JOIN dependencia b ON b.idDependencia = a.subdependencia WHERE idSubaccion = '$idSubaccion'";

aunque sé que podría funcionar con:

$lsQuery1 = "SELECT * FROM subaccion a INNER JOIN dependencia b ON b.idDependencia = a.subdependencia WHERE idSubaccion='$idSubaccion'"
$lsQuery2 = "SELECT * FROM presupuesto WHERE idSubaccion='$idSubaccion'";

habría que hacer un $resultado1=@mysql_query($lsQuery1) y un $resultado2 = ....

a lo que voy es que no es óptimo pues después del cierre del else, trabajo con sólo un $resultado y de esta manera tendría que trabajar con dos códigos...

Si pudieran echarme la mano con esto.. espero no haberlos echo pelotas.

Saludos
Ulises
  | | The administrator has disabled public write access.
Re:query problema - 2007/11/06 14:48 Ya quedó amigos, les agrdezco la solución fue la siguiente:

$lsQuery = "SELECT subaccion.nombreSubaccion, subaccion.digito, subaccion.idDependencia, dependencia.nombreDependencia, presupuesto.presu1, presupuesto.presu2"
. " FROM subaccion, presupuesto, dependencia"
. " WHERE presupuesto.idSubaccion = '$idSubaccion' AND subaccion.idSubaccion = '$idSubaccion' AND dependencia.idDependencia = subaccion.subdependencia";

Saludos

Ulises Vargas
  | | The administrator has disabled public write access.
 





¿Recuperar clave?
¿Quiere registrarse? Regístrese aquí
Hay 1 invitado en línea

Foros de soporte