Foros del Web » Programando para Internet » PHP »

Presentar registros en text area con php 4 usando oracle

Estas en el tema de Presentar registros en text area con php 4 usando oracle en el foro de PHP en Foros del Web. Hola a todos espero contar con su ayuda, tengo este codigo que me permite consultar registros(fechas) de mi base de datos oracle y presentarlos en ...
  #1 (permalink)  
Antiguo 09/07/2012, 13:54
Avatar de javr89  
Fecha de Ingreso: junio-2012
Ubicación: guayaquil
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
Exclamación Presentar registros en text area con php 4 usando oracle

Hola a todos espero contar con su ayuda, tengo este codigo que me permite consultar registros(fechas) de mi base de datos oracle y presentarlos en un textarea, estoy trabajando con php 4 (yo se q estoy desactualizado, pero cambiar todo el sistema me tomara 5 años!!), bueno el problema es que al presentarlos en el text area solo me presenta los "->".

No se xq no me presentan las fechas, deberia quedar asi: 14/05/2012->15/05/2012




Código PHP:

    $conn 
Conectar_Oracle();
    
    
$sql_query "SELECT ID_EMPLEADO,
               TO_CHAR(FECHA_INICIO_GOCE,'DD/MM/YYYY') FECHA_INICIO,
                             TO_CHAR(FECHA_FIN_GOCE, 'DD/MM/YYYY') FECHA_FIN,
                            
                   FROM NOMI_DET_SOLICITUD_VACACIONES 
                   WHERE ID_SOLICITUD = $id_solicitud"
;
                   
    
$stid ociparse($conn$sql_query);
    
$eociexecute($stid);
            
    while(
$row ocifetch($stid)){
    
$info.=$row['FECHA_INICIO']." -> ".$row['FECHA_FIN']."\n";
    }
    echo 
"<textarea>$info</textarea>"

Saludos,
  #2 (permalink)  
Antiguo 09/07/2012, 14:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Presentar registros en text area con php 4 usando oracle

En vez de usar ocifetch, usa ofi_fetch_array para obtener los datos.

Saludos.
  #3 (permalink)  
Antiguo 09/07/2012, 14:57
Avatar de javr89  
Fecha de Ingreso: junio-2012
Ubicación: guayaquil
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Presentar registros en text area con php 4 usando oracle

Hola GatorV

ofi_fetch_array no me funka porque estoy trabajando con php4... esa funcion se puede usar a partir de php 5... Si tienes alguna alternativa de como hacer lo mismo.. bienvenida sea!!

Saludos!
  #4 (permalink)  
Antiguo 09/07/2012, 15:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Presentar registros en text area con php 4 usando oracle

El problema con ocifetch es que no te devuelve un array, tienes que usar oci_define_by_name antes de hacer el execute para extraer las variables.
  #5 (permalink)  
Antiguo 09/07/2012, 15:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Presentar registros en text area con php 4 usando oracle

Viendo la documentación puedes usar también OCIFetchInto:
Código PHP:
Ver original
  1. $conn = OCILogon('user', 'secret', 'DB');
  2.  
  3.  $th = 0; // Table Header
  4.  
  5.        $query = 'select * from PAYMENT';
  6.  
  7.        $stid = OCIParse($conn, $query);
  8.        OCIExecute($stid);
  9.  
  10.         echo "<table>\n\n";
  11.         while (OCIFetchInto($stid, $row, OCI_ASSOC)) {
  12.           if (!$th) {
  13.  
  14.             $keys = (array_keys($row));
  15.  
  16.             echo "\n<tr>\n";
  17.             foreach ($keys as $k) {echo "<th>" . $k . "</th>\n";}
  18.             echo "</tr>\n";
  19.  
  20.             $th = 1; // Table header done !
  21.                     }
  22.  
  23.           echo "\n<tr>\n";
  24.           foreach ($keys as $k) {echo "<td>" . $row[$k] . "</td>\n";}
  25.           echo "</tr>\n";
  26.           $count = $count + 1;
  27.         }
  28.  
  29.         echo "</table>\n\n";
  30.  
  31. echo "<h3>" . $count . " records</h3>";
  32.  
  33. OCILogoff($conn);
  #6 (permalink)  
Antiguo 10/07/2012, 09:01
Avatar de javr89  
Fecha de Ingreso: junio-2012
Ubicación: guayaquil
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Presentar registros en text area con php 4 usando oracle

Tienes mucha razon pero lo resolvi con el ociresult, extrayendo cada valor y luego insertandolo en un arreglo para convertirlo en cadena, no me quedo de otra ya que ese PHP 4 esta algo limitado, de igual manera muchas gracias!
  #7 (permalink)  
Antiguo 10/07/2012, 09:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Presentar registros en text area con php 4 usando oracle

Realmente espero que el sistema que estés haciendo no tenga salida a internet, si no te vas a encontrar con muchos, muchos problemas al usar versiones tan viejas de OCI y PHP.
  #8 (permalink)  
Antiguo 10/07/2012, 09:15
Avatar de javr89  
Fecha de Ingreso: junio-2012
Ubicación: guayaquil
Mensajes: 38
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Presentar registros en text area con php 4 usando oracle

por suerte es intranet... y si me tocara migrarlo a PHP 5.4 , hacer ese trabajo sucio pero alguien tiene que hacerlo jeje, y por cierto conoces alguna herramienta que me ayude a la migracion?
  #9 (permalink)  
Antiguo 10/07/2012, 09:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Presentar registros en text area con php 4 usando oracle

Pues realmente no son tantos los cambios, simplemente es que tengas bien el concepto, el Manual te indica claramente los pasos para migrar entre versiones, muchas veces el código funciona de igual manera (a excepción de si usas extensiones como esta) pero por lo demás es sencillo mientras no uses funciones que ya han sido deprecadas y tengas un buen código.

Etiquetas: arreglos, ocifetch, oracle, presentar, textarea
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 11:40.