MySQL - erro de criterio o IGNORANCIA?

 
Vista:
sin imagen de perfil

erro de criterio o IGNORANCIA?

Publicado por miguelangel (3 intervenciones) el 17/04/2010 13:45:02
holaaa, la consulta q transcribo abajo está OK Y FUNCIONANDO, el tema es el siguiente. Como verán yo plantee mi bd con una tabla "dependencias" que guarda los distintos lugares donde puede estar un expediente. esa tabla "sirve" con sus datos a DOS campos de OTRA tabla que son "movimientos.OrigenInt" Y "movimientos.DestinoInt" (verán q en la consulta hago un LEFT JOIN relacionando estos campos, hasta aca todo bien y funciona.

$consulta2 = "SELECT movimientos.IdMov, movimientos.IdExpte, expedientes.IdExpte, expedientes.Numero, movimientos.FechaIng, movimientos.FechaSalida, movimientos.RespSalida, movimientos.DestinoInt, movimientos.Observaciones, movimientos.OrigenInt, dependencias.dependencia, dependencias.IdDep FROM (expedientes INNER JOIN movimientos ON expedientes.IdExpte = movimientos.IdExpte) LEFT JOIN dependencias ON (movimientos.DestinoInt = dependencias.IdDep) AND (movimientos.OrigenInt = dependencias.IdDep) WHERE expedientes.Numero = '$_POST[numexpte]' OR expedientes.Numero = '$_GET[numexpte]' ORDER BY movimientos.IdMov DESC";

el problema viene cuando quiero MOSTRAR los datos de esos campos yo tengo lo siguiente (pongoi solo una parte del codigo)

echo "<tr>";
setlocale(LC_TIME, 'sp');
echo "<td align=left><strong>".strftime('%d.%b.%Y', strtotime($row2["FechaIng"]))."</strong></td>";
echo "<td align=left><strong>".stripslashes($row2["OrigenInt"])."</strong></td>";
echo "<td align=left><strong>".strftime('%d.%b.%Y', strtotime($row2["FechaSalida"]))."</strong></td>";
echo "<td align=left><strong>".stripslashes($row2["DestinoInt"])."</strong></td></tr>";
echo "<td height=20 colspan=2 class=titulochico align=left >Observaciones:</td>";
echo "</tr>";

si se fijan tengo stripslashes($row2["OrigenInt"]) Y stripslashes($row2["DestinoInt"])
y en teoria refieren al mismo campo "dependencia" (ambos tienen guardados el ID de las dependencias). Si dejo así como está me larga los ID guardados, entonces debería poner stripslashes($row2["dependencia"]), la pregunta es como "le digo" que ORIGENINT es una cosa y DESTINOINT es otra, algo asi como origenint.dependencia y destinoint.dependencia? POR FAVOR espero sus respuestas, se que me pueden ayudar GRACIASS!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:erro de criterio o IGNORANCIA?

Publicado por Gonzalo GC (339 intervenciones) el 18/04/2010 00:38:52
¿Y qué tiene que ver tu problema de PHP con la base de datos?

SOn cosas totalmente diferentes. Si la consulta en SQL te funciona bien, y tu problema es MOSTRAR los datos, te convendría preguntar en un foro dedicado el PHP y no en uno de Bases de Datos....

No te olvides que no todos los que trabajan en MySQL lo hacen en PHP. Yo, por caso, trabajo con VB.Net y C#, pero con bases en MySQL..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:erro de criterio o IGNORANCIA?

Publicado por miguelangel (3 intervenciones) el 18/04/2010 01:50:45
NO gonzalo, talvez me exprese mal. El problema está en que no se como hacer lo que pretendo. lo que plantee obviamente no funciona.

EXPEDIENTES
IdExpte
numero

DEPENDENCIA
IdDep
IdExpte
dependencia

MOVIMIENTOS
IdMov
OrigenInt (dependencia)
DestinoInt (dependencia)
FechaEntrada
FcehaSalida

lo que pretendo de la consulta es que me largue todos los campos de la tabla MOVIMIENTOS pero a la hora de "pedir" OrigenInt y DestinoInt es que no se como resolverlo, espero haberme explicado mejor GRACIAS!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:erro de criterio o IGNORANCIA?

Publicado por Gonzalo GC (339 intervenciones) el 19/04/2010 15:58:39
Algo así, mas o menos:
/* ------------------------------------------------------------------------------*/
SELECT
M. IdMov,
IFNULL(M.OrigenInt,'NO INGRESADO') OrigenInt,
IFNULL(M.DestinoInt,'NO INGRESADO') DestinoInt,
M.FechaEntrada,
M.FcehaSalida
FROM movimientos M
LEFT JOIN dependencia D1 ON M.OrigenInt = D1.IdDep
LEFT JOIN dependencia D2 ON M.DestinoInt = D1.IdDep
INNER JOIN expedientes e ON M.IdExpte = e.IdExpte;
/* ------------------------------------------------------------------------------*/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar