Foros del Web » Programando para Internet » PHP »

odbc_result devuelve 0.

Estas en el tema de odbc_result devuelve 0. en el foro de PHP en Foros del Web. Buenos días, Por más vueltas que le doy no encuentro la causa por la que el sistema no recupera correctamente los valores de una consulta. ...
  #1 (permalink)  
Antiguo 23/09/2011, 02:08
 
Fecha de Ingreso: septiembre-2011
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
odbc_result devuelve 0.

Buenos días,
Por más vueltas que le doy no encuentro la causa por la que el sistema no recupera correctamente los valores de una consulta.

Actualmente estoy desarrollando con PHP. Utilizo ODBC para trabajar con la base de datos Access que tengo diseñada. Tengo la siguiente consulta:

Código PHP:
$sqlMediasTG "SELECT Sum(BIG_MATRIX_PROMEDIOS.MIR2) AS 110, Sum(BIG_MATRIX_PROMEDIOS.SC110) AS 121, Sum(BIG_MATRIX_PROMEDIOS.SC121) AS 131, Sum(BIG_MATRIX_PROMEDIOS.SC131) AS OTROS, Sum(BIG_MATRIX_PROMEDIOS.PC210) AS 210
FROM BIG_MATRIX_PROMEDIOS
WHERE ((BIG_MATRIX_PROMEDIOS.DEL)=#$DEL#             
AND (BIG_MATRIX_PROMEDIOS.AL)=#$AL#)"
;    
$ACCESS_Medias=odbc_exec($Conexion,$sqlMediasTG); 
Después almaceno los valores obtenidos de la consulta anterior en variables:

Código PHP:
$ind110 odbc_result($ACCESS_Medias,"110");
$ind121 odbc_result($ACCESS_Medias,"121");
$ind131 odbc_result($ACCESS_Medias,"131");
$ind210 odbc_result($ACCESS_Medias,"210");
$indotros odbc_result($ACCESS_Medias,"OTROS"); 
¿Cuál es mi sorpresa? pues que cuando recupero los valores con odbc_result obtiene 0. Cuando en realidad la consulta está obteniendo valores superiores a 0. Ya que he ejecutado la consulta directamente en la base de datos y el resultado es:

110 = 35590
121 = 1851
131 = 425
OTROS = 1716
210 = 7387

La consulta que ejecuto es:

Código:
SELECT Sum(BIG_MATRIX_PROMEDIOS.MIR2) AS 110, Sum(BIG_MATRIX_PROMEDIOS.SC110) AS 121, Sum(BIG_MATRIX_PROMEDIOS.SC121) AS 131, Sum(BIG_MATRIX_PROMEDIOS.SC131) AS OTROS, Sum(BIG_MATRIX_PROMEDIOS.PC210) AS 210 FROM BIG_MATRIX_PROMEDIOS WHERE ((BIG_MATRIX_PROMEDIOS.DEL)=#01/01/2011# AND (BIG_MATRIX_PROMEDIOS.AL)=#08/31/2011#)
Por favor, ¿puede indicarme alguien porque cuando intento recuperar los valores con odbc_result obtiene 0 en lugar de 35590, 1851, 425, 1716 y 7387?

Aparentemente puede parecer una tontería, pero creo que el sistema me toma el pelo...

Gracias de antemano.
Saludos,
  #2 (permalink)  
Antiguo 23/09/2011, 02:57
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: odbc_result devuelve 0.

Mi opinión es que te sobran los paréntesis en la consulta.

Código SQL:
Ver original
  1. WHERE BIG_MATRIX_PROMEDIOS.DEL=#$DEL# AND BIG_MATRIX_PROMEDIOS.AL=#$AL#
  #3 (permalink)  
Antiguo 23/09/2011, 03:34
 
Fecha de Ingreso: septiembre-2011
Mensajes: 2
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: odbc_result devuelve 0.

Hola hasdpk,

Gracias por tu rápida respuesta y apoyo, es de agradecer.
He quitado los parentesis de la clausula WHERE pero sigo teniendo el mismo problema.

11:43 - Por fin doy con la clave. Encontré el causante de la incidencia, algo tan tonto como el nombre del ODBC mal escrito.
Inicialmente tenía: $Conexion=odbc_connect("ORIGINAL"," "," "," ");
Cuando en realidad debía apuntar a: $Conexion=odbc_connect("ORIGINAL_NUEVO"," "," "," ");

Ostras, ¿porqué será que el causante siempre acaba siendo una tontería? jejeje.

¡Gracias de nuevo por tu apoyo!

Saludos,

Última edición por vdesarrollo; 23/09/2011 a las 03:46

Etiquetas: devuelve, sql, variables
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:46.