Foros del Web » Programando para Internet » PHP »

Leyendo tabla de DBASE

Estas en el tema de Leyendo tabla de DBASE en el foro de PHP en Foros del Web. Hola: el problema que tengo es que quiero leer una tabla de VFP con las funciones php_dbase pero no las puedo leer. Lo curioso es ...
  #1 (permalink)  
Antiguo 31/01/2007, 13:15
 
Fecha de Ingreso: enero-2007
Ubicación: Mérida, yucatan, mexico
Mensajes: 15
Antigüedad: 17 años, 3 meses
Puntos: 0
Pregunta Leyendo tabla de DBASE

Hola:
el problema que tengo es que quiero leer una tabla de VFP con las funciones php_dbase pero no las puedo leer. Lo curioso es que se abre el archivo, se cierra, se recorre con un " for " y hasta puedo imprimir el numero de registros pero falla el
dbase_get_record_with_names($db, $i);

al parecer tiene que ver con el formato o algo asi. ya que si creo la tabla con dbase_create asi si la puedo leer.

hay alguna otra cosa que pueda hacer ??

de antemano, Gracias por tu ayuda.

<?php

// abrir en modo solo lectura
$db = dbase_open('.\tmp\paso.dbf', 0);

if ($db) {
$numero_registros = dbase_numrecords($db);
// procesar cada uno de los registros

//$numero_registros = dbase_numrecords($db);
for ($i = 1; $i <= $numero_registros; $i++) {
$row = dbase_get_record_with_names($db, $i);
echo "Miembro #$i: " . trim($row['paciente']) . "\n"; // linea 13
}
}
else
{
echo "no se abrio la tablas";
}
?>
------------------------ERROR --------------------

Notice: Undefined index: paciente in c:\archivos de programa\easyphp1-8\www\ceotec\dbase.php on line 13
Miembro #1:
Notice: Undefined index: paciente in c:\archivos de programa\easyphp1-8\www\ceotec\dbase.php on line 13
Miembro #2:
Notice: Undefined index: paciente in c:\archivos de programa\easyphp1-8\www\ceotec\dbase.php on line 13
Miembro #3:
Notice: Undefined index: paciente in c:\archivos de programa\easyphp1-8\www\ceotec\dbase.php on line 13
Miembro #4:
Notice: Undefined index: paciente in c:\archivos de programa\easyphp1-8\www\ceotec\dbase.php on line 13
Miembro #5:
Notice: Undefined index: paciente in c:\archivos de programa\easyphp1-8\www\ceotec\dbase.php on line 13
  #2 (permalink)  
Antiguo 31/01/2007, 13:29
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Leyendo tabla de DBASE

parece ser que no estas especificando el indice del arreglo que estas recorriendo.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 31/01/2007, 17:18
 
Fecha de Ingreso: enero-2007
Ubicación: Mérida, yucatan, mexico
Mensajes: 15
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Leyendo tabla de DBASE

HOLA EITS

PARA SER FRANCO, EL CODIGO LO COPIE DE UN EJEMPLO DE LA AYUDA DE PHP ASI QUE DEBERIA FUNCIONAR, SIN EMBARGO NO LO HACE.
SE SUPONE QUE EL ARREGLO ES $row
  #4 (permalink)  
Antiguo 31/01/2007, 17:34
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Leyendo tabla de DBASE

la verdad es que yo no he trabajado con dbase pero el error es que no hay un indice definido como 'paciente', estas seguro que hay un identificador con el nombre paciente? no será pacientes? verificalo y comenta, ah! y otra cosa puedes abrir como modo lectura utilizando la r en vez del 0

// abrir en modo solo lectura
$db = dbase_open('.\tmp\paso.dbf', r);

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 31/01/2007, 17:51
 
Fecha de Ingreso: enero-2007
Ubicación: Mérida, yucatan, mexico
Mensajes: 15
Antigüedad: 17 años, 3 meses
Puntos: 0
Pregunta Re: Leyendo tabla de DBASE

la tabla que quiero leer se creo por medio de una consulta hecha desde VFP, la tabla se llama paso.dbf y uno de los campos se llama paciente (singular) todo con minúsculas.
si ejecuto el script en php que crea una tabla, ok, se crea la tabla y luego puedo leer los campos de la tabla con este mismo script.

<?php

// abrir en modo solo lectura
$db = dbase_open('.\tmp\PASO.dbf', 0);

if ($db) {
$numero_registros = dbase_numrecords($db);
// procesar cada uno de los registros

//$numero_registros = dbase_numrecords($db);
for ($i = 1; $i <= $numero_registros; $i++) {
$row = dbase_get_record_with_names($db, $i);
echo "Miembro #$i: " . trim($row['paciente']) . "\n"; // linea 13
}
}
else
{
echo "no se abrio la tablas";
}
?>
  #6 (permalink)  
Antiguo 31/01/2007, 18:16
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Leyendo tabla de DBASE

pues en teoria debe funcionar, por lo que e estado checando con otro código no veo nada diferente a exepción de esto \tmp\PASO.dbf' tal vez si lo pones así /tmp/PASO.dbf, pero fuera de ahí lo veo bien, sin embargo si no es mucho pedir que me mandes una copia de la base de datos o parte o una similar para que yo pudiese checar, a ver si descubro la razón, pero en fin, estaré peniente.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #7 (permalink)  
Antiguo 31/01/2007, 21:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Leyendo tabla de DBASE

Prueba usar un var_dump en la variable $row, asi veras que campos te esta regresando y como accesarlos.
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 05:02.