ulivar
User
 Junior Boarder
| Envíos: 7 |   | Karma: 0
|
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
|