PHP - *** PROBLEMA EN PHP ***

 
Vista:

*** PROBLEMA EN PHP ***

Publicado por CvargasK (8 intervenciones) el 17/04/2012 20:00:42
Hola foristas,

Tengo el siguiente codigo PHP que tiene dos selects...

En el primer select trato de capturar un codigo alterno
para luego utilizarlo en el segundo select, pero no lo hace.

Es decir, la funcion devuelve el valor del segundo echo sin capturar el valor
del primero, para usarla en la condicion del segundo select.

El PHP esta dentro de un AJAX y este esta dentro de una funcion.

Que me puede estar faltando, espero haberme explicado bien
y gracias de antemano.

<?php
// la conexion es ODBC

$sql1="select alt as alterno from areas where cod_alt = '1700";
$rs1=odbc_exec($link_sql, $sql1);
while (odbc_fetch_row($rs1)) {
$alterno=odbc_result($rs1, "alterno");
}
echo $alterno;

$sql2="select total as planilla
from datos a
where a.cod_are = '".$alterno."'
$rs2=odbc_exec($link_sql, $sql2);
while (odbc_fetch_row($rs2)) {
$plan=odbc_result($rs2, "planilla");
}
odbc_close($link_sql);
echo $plan;
?>
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

*** PROBLEMA EN PHP ***

Publicado por xve (6935 intervenciones) el 17/04/2012 20:39:55
Lo que entiendo, es que cuando realizas el echo $alterno;, no te devuelve nada verdad? Creo que es porque si coges el valor dentro de un bucle, el bucle lo hace hasta EOF (final de registros), por lo que cuando sale, no tiene valor...

No he utilizado nunca ODBC, pero pruebas esto:
1
2
3
4
$sql1="select alt as alterno from areas where cod_alt = '1700";
odbc_exec($link_sql, $sql1);
$alterno=odbc_result($rs1, "alterno");
echo $alterno;

Coméntanos, ok?
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

*** PROBLEMA EN PHP ***

Publicado por CvargasK (8 intervenciones) el 17/04/2012 22:13:09
Exacto, echo $alterno no me devuelve nada
Hice las modificaciones quitandole el bucle
pero me sigue devolviendo vacio

Al parecer no esta ejecutando el primer select
por alguna razon
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

*** PROBLEMA EN PHP ***

Publicado por xve (6935 intervenciones) el 17/04/2012 22:54:00
Nunca he utilizado ODBC, por lo que no te puedo ayudar, pero si no te da ningún error, interpreto que esta funcionando.
Lo que yo miraría, es si ejecutas la instrucción SQL directamente en la base de datos, te devuelve algún registro... no vaya a ser, que por alguna razón no te devuelva nada.
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

*** PROBLEMA EN PHP ***

Publicado por CvargasK (8 intervenciones) el 17/04/2012 23:24:01
He ejecutado la instruccion SQL directamente en la BD y si me retorna un registro.

¿ Que podra ser ?
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

*** PROBLEMA EN PHP ***

Publicado por oscar.tt (15 intervenciones) el 18/04/2012 00:21:36
tampoco conozco las funciones de odbc, pero en mysql o pdo, te devuelve una matriz, no una variable, por lo que el echo $alterno, tendria que ser $alterno[0]["alterno"]

] ....y te escribo desde la ignorancia de esas funciones que utilizas.....
Mira por ahí a ver que tal...
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

*** PROBLEMA EN PHP ***

Publicado por CvargasK (8 intervenciones) el 18/04/2012 15:56:39
He modificado la siguiente linea

$alterno=odbc_result($rs1, $alterno[0]["alterno"]);

pero tampoco funciona

alguien que me pueda dar una luz...
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

*** PROBLEMA EN PHP ***

Publicado por Emerson Palacios (2 intervenciones) el 18/04/2012 16:33:43
Como ya dijeron anteriormente ya probaste el select directamente en la base de datos ???.tambien podrias hacer un solo select con un subselect seria algo asi : select total as planilla from datos a
where a.cod_are = (select alt as alterno from areas where cod_alt = '1700') a ver pruebas y nos comentas.
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

*** PROBLEMA EN PHP ***

Publicado por CvargasK (8 intervenciones) el 18/04/2012 17:30:16
Si, ya probre el select directamente en la BD y se me devuelve un registro con un resultado
Tambien lo he probado haciendo un subselect dentro del otro y tampoco nada
Le agregue VAR_DUMP($alterno); y me devuelve BOOL(FALSE)
Los campos son varchar(10)
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