elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] Ayuda: php+access+campo memo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Ayuda: php+access+campo memo  (Leído 2,283 veces)
CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
[Resuelto] Ayuda: php+access+campo memo
« en: 8 Septiembre 2015, 02:06 am »

Buenas tardes, recien empiezo en la programación con php y me he topado con un problema: los campos memo, mi problema es que no puedo leer el valor del campo, si leo cualquier otro campo ya sea de texto corto, fecha, número no hay problema

he buscado pero no he encontrado porque se da este comportamiento, ¿hay alguien que me pueda ayudar?

estoy usando un ODBC que se conecta a una base de datos del Access 2013. el código que tengo es el siguiente:

para conectar la BD:

Código
  1.    function conexion(){
  2.  
  3.    $conn=odbc_connect('auxAdmin','','');//DSN, usuario, password
  4.  
  5.    if (!$conn){
  6.        exit("Falló conexion: " . $conn);
  7.    }
  8.  
  9.    return($conn);
  10.  
  11.    }

Para leer los campos:

Código
  1.    // inicializa las variables
  2.    $os = "";
  3.    $cliente = "";
  4.    $agente = "";
  5.    $estatus = "";
  6.    $fecha_solicitud="";
  7.    $idOS=0;
  8.    $fecha_atencion="";
  9.    $fecha_cierre="";
  10.    $t_respuesta="";
  11.    $solicitud ="";
  12.  
  13.    //crea la conexión a la base de datos
  14.    $conn=conexion();
  15.  
  16.    if(isset($_POST["txtOS"]))
  17.    {
  18.        $folioOS = $_POST["txtOS"];
  19.  
  20.        //valida el valor a buscar
  21.        $pos = strpos($folioOS, "-");
  22.        if ($pos == false){
  23.            $folioOS ="A-0000";
  24.            echo "<script languaje= 'javascript'> alert('El folio de la OS no es válido, verifique sus datos e intente nuevamente.'); </script>";
  25.        }
  26.  
  27.        $parametros = explode ("-", $folioOS, 5);
  28.  
  29.        //Obtiene los datos de la OS
  30.        $sql = "SELECT c.ccodigoc01 AS Codigo, c.crazonso01 AS Cliente, u.ClaveAdministradorGarantia AS CodAgente, u.NombreAdministradorGarantia AS Agente,
  31.                OS.SerieOS, OS.FolioOS, e.Estatus, OS.idOS, Format(FechaRec,'dd/mm/yyyy') & ' ' & Format(HoraRec,'Short Time') AS fecha_solicitud,
  32.                Format(cierre.FechaEvento,'dd/mm/yyyy') & ' ' & Format(cierre.HoraInicio,'Short Time') AS fecha_cierre,
  33.                Format(atn.FechaEvento,'dd/mm/yyyy') & ' ' & Format(Atn.HoraInicio,'Short Time') AS fecha_atn,
  34.                left(OS.SolicitudCliente,len(trim(OS.SolicitudCliente))) as Solicitud
  35.                FROM ((((OS INNER JOIN Clientes AS c ON OS.idCliente = c.cidclien01)
  36.                INNER JOIN Usuarios2 AS u ON OS.AgenteResp = u.ClaveAdministradorGarantia)
  37.                INNER JOIN osEstatus AS e ON OS.EstatusOS = e.Id)
  38.                LEFT JOIN OSBitacora AS cierre ON (OS.idOS = cierre.idOS AND cierre.Estatus = 8))
  39.                LEFT JOIN OSBitacora AS atn ON (OS.idOS = atn.idOS AND atn.Evento = 1 AND atn.Ciclo = 1)
  40.                WHERE OS.SerieOS = '" . $parametros[0] . "'" . " AND OS.FolioOS = " . $parametros[1] . ";";
  41.        //echo $sql;
  42.  
  43.        $rs=odbc_exec($conn,$sql);
  44.  
  45.        if (!$rs){
  46.            echo "Error";
  47.            exit("Error in SQL");
  48.  
  49.        }
  50.        else
  51.        {
  52.            $os = odbc_result($rs, "SerieOS");
  53.            $os .= '-';
  54.            $os .= sprintf("%04d", odbc_result($rs, "FolioOS"));
  55.  
  56.            $cliente = odbc_result($rs,"Codigo");
  57.            $cliente .= ' - ';
  58.            $cliente .= odbc_result($rs,"Cliente");
  59.  
  60.            $agente = sprintf("%03d", odbc_result($rs, "CodAgente"));
  61.            $agente .= ' - ';
  62.            $agente .= odbc_result($rs,"Agente");
  63.  
  64.            $estatus = odbc_result($rs, "Estatus");
  65.            $idOS = odbc_result($rs, "idOS");
  66.            $fecha_solicitud = odbc_result($rs, "fecha_solicitud");
  67.  
  68.            $fecha_atencion = odbc_result($rs, "fecha_atn");
  69.            if ($fecha_atencion != " "){
  70.                $fecha_atencion .= Calcula_Tiempo_Respuesta($conn, $fecha_solicitud, $fecha_atencion);
  71.  
  72.            }
  73.            else{
  74.                $fecha_atencion = "Este servicio aún no ha sido atendido";
  75.            }
  76.  
  77.            $fecha_cierre = odbc_result($rs, "fecha_cierre");
  78.            if ($fecha_cierre != " "){
  79.                $fecha_cierre .= Calcula_Tiempo_Solucion($conn, $fecha_solicitud, $fecha_cierre);
  80.  
  81.            }
  82.            else{
  83.                $fecha_cierre = "Este servicio aún no ha sido cerrado";
  84.            }
  85.  
  86.           [color=red][font=Verdana] $solicitud = odbc_result($rs, "Solicitud");[/font][/color]
  87.  
  88.        }

el problema es la linea $solicitud = odbc_result($rs, "Solicitud"); solo me regresa el valor "1"

Mod: Obligatorio el uso de etiquetas GeSHi. Temas sobre PHP van al subforo de PHP.


« Última modificación: 12 Septiembre 2015, 13:42 pm por #!drvy » En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
someRandomCode

Desconectado Desconectado

Mensajes: 250



Ver Perfil
Re: Ayuda: php+access+campo memo
« Respuesta #1 en: 8 Septiembre 2015, 17:09 pm »

Estas seguro que existe un campo "Solicitud" (case sensitive) en la DB?
O que el valor que estas levantando no es el correcto?


En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Ayuda: php+access+campo memo
« Respuesta #2 en: 8 Septiembre 2015, 18:03 pm »

Buenos días someRandomCode, gracias por contestar, estuve investigando y al parecer no es tanto problema de PHP parece que es de Access, al realizar una consulta con varias tablas Access trunca los campos memo, realice una consulta en access y la ejecuta bien, pero si hago un form con un control enlazado a la consulta me muestra solo basura en campos memo, al parecer es un bug ya identificado por microsoft.

Lo que finalmente hice es hacer una consulta por separado para obtener el valor del campo "solicitud" ya que cuando hago una consulta sobre una sola tabla el error no se presenta (cosa rara ), no se si sea el metodo más profesional, pero al menos funciona.
En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines