Autor
|
Tema: [Ayuda]Lectura de Archivo txt (Leído 3,984 veces)
|
rolly21102
Desconectado
Mensajes: 95
|
Hola amigos! Se me presenta el siguiente problema al momento de leer este txt.... empleados.txt 15680708,Patricia,Colmenares,30,Sistemas,5200 18909823,María,Castro,21,Contabilidad,2500 20012345,Carlos,Pérez,18,Sistemas,2100 6234561,Juan,Villamizar,45,Recursos Humanos,5500 4509002,Pedro,Rivero,62,Sistemas,6000 15897034,Diana,Soto,28,Mercadeo,4500 17098456,Ana,Montero,26,Mercadeo,2560 16732210,David,Gutiérrez,27,Recursos Humanos,3700
Necesito leer linea por linea para luego imprimirla tal y como sale en la imagen dependiendo del departamento que yo seleccione o le ingrese por un formulario... Esta es la clase con mis avances y donde me quede estancado <?php
class Empleados {
function listar_departamento($departamento) {
$archivo = 'empleados.txt'; $fp = fopen($archivo,'r');
$arreglo = array(); $i = 0;
while (!feof($fp)) {
/* while($a = fgetcsv($fp, 1000, ",")){
COMO PUEDO HACER PARA PREGUNTAR SI EL CAMPO 4 PERTENECE AL DEPARTAMENTO QUE LLEGÓ COMO PARAMETRO (Se que con if pero nose como hacer la comparativa con el campo 4)
Y AGREGAR LOS DATOS EXTRAIDOS EN UN ARREGLO ASOCIATIVO ?? */
}
fclose($fp);
// Y QUE A CONTINUACION VAYA GUARDANDO EN UNA VARIABLE DE CADENA ($cadena) LO QUE SE IMPRIMIRA EN PANTALLA, // COMENZANDO POR EL ENCABEZADO
foreach ($arreglo as $emp) {
// AQUI AGREGO LA FILA Y LAS COLUMNAS CON LOS DATOS DEL EMPLEADO
} $cadena .= '</table>';
return $cadena;
}
}
?>
Uploaded with ImageShack.us
|
|
« Última modificación: 20 Junio 2011, 02:58 am por rolly21102 »
|
En línea
|
|
|
|
Cicklow
Desconectado
Mensajes: 604
-=Cicklow SOFT®=-
|
Hola este codigo te sera de ayuda, crea un array con los datos de los que coinciden y otro con los que no. Saludos. <?php $A = file_get_contents('iono.txt'); //Abrimos el file $B = preg_split("|[\r\n]+|i", $A, -1, PREG_SPLIT_NO_EMPTY); //parseamos por salto de linea
$DTO = array(); foreach($B as $C){ $D = preg_split("|,|sU",$C,-1,PREG_SPLIT_NO_EMPTY); //parseamos por , if($D[4] == $_GET['cual']){ //verificamos si coincide con el campo cual pasado por GET (url.com/?cual=Sistemas) $DTO['si'][] = array($D); }else{ $DTO['no'][] = array($D); } }
echo '<pre>';print_r($DTO); //Mostramos el array en pantalla ?> Para luego mostrar el resultado como quieres, solo tiens que poner //Para mostrar los que coinciden foreach($DTO['si'] as $T1){ echo $T1[0].' - '.$T1[1].'...'; }
//Para mostrar los que no coinciden foreach($DTO['no'] as $T1){ echo $T1[0].' - '.$T1[1].'...'; }
Saludos
|
|
|
En línea
|
|
|
|
rolly21102
Desconectado
Mensajes: 95
|
Gracias papa ! Lo probaré y en un rato les comento como me fue..
Si tienen alguna otra sugerencia no duden en comentarla..
GRACIAS
|
|
|
En línea
|
|
|
|
rolly21102
Desconectado
Mensajes: 95
|
Amigo aun no he podido realizarlo.... Lo mas cercano que he podido hacer es esto y no me esta retornando el valor del arreglo con los empleados... Me sale esta pantalla despues que hago el envio de los departamentos... Y Asi es como quedo mi codigo... index.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <center> <br /> <h1>Listar Empleados </h1> <br /> <form action="listado.php" method="post" id="departamentos" name="departamentos"> <table width="408" border="1"> <tr> <td width="200" height="173" align="center"><b>DEPARTAMENTOS</b></td> <td width="192"><input type="checkbox" name="departamentos[]" value="Contabilidad">Contabilidad <br /> <input type="checkbox" name="departamentos[]" value="Sistemas">Sistemas <br /> <input type="checkbox" name="departamentos[]" value="Mercadeo">Mercadeo <br /> <input type="checkbox" name="departamentos[]" value="Recursos Humanos">Recursos Humanos </td> </tr> <tr> <td height="39" colspan="2" align="center"><input type="submit" name="Submit" value="Listar"> </td> </tr> </table> </form> </center> </body> </html>
listado.php <?php
$departamentos = $_REQUEST["departamentos"]; include "empleados.class.php"; //$empleados = new Empleados($ordenar); $empleados = new Empleados($departamentos);
echo '<center>'; echo '<h2>Listado de Empleados</h2>';
foreach ($departamentos as $departamento) {
echo $empleados->listar_departamento($departamentos); echo '<br /><br />';
}
echo '</center>'; ?>
empleados.class.php <?php
class Empleados {
function listar_departamento($departamentos) {
$archivo = 'empleados.txt'; $fp = fopen($archivo,'r');
//$arreglo = array(); $i = 0; $cadena = array(); while (!feof($fp)) { while($a = fgetcsv($fp, 1000, ",")) { if($a[4]==$_REQUEST["departamentos"]){ $cadena[$i] = $a; $i++; } } }
fclose($fp);
foreach ($cadena as $emp) {
$cadena .= $emp."<br>"; }
return $cadena;
}
}
?>
empleados.txt 15680708,Patricia,Colmenares,30,Sistemas,5200 18909823,María,Castro,21,Contabilidad,2500 20012345,Carlos,Pérez,18,Sistemas,2100 6234561,Juan,Villamizar,45,Recursos Humanos,5500 4509002,Pedro,Rivero,62,Sistemas,6000 15897034,Diana,Soto,28,Mercadeo,4500 17098456,Ana,Montero,26,Mercadeo,2560 16732210,David,Gutiérrez,27,Recursos Humanos,3700
Le agradezco de antemano al que me heche una ayuda...
|
|
|
En línea
|
|
|
|
Cicklow
Desconectado
Mensajes: 604
-=Cicklow SOFT®=-
|
Pero no estas usando el codigo que te puse... con mi codigo funciona bien!
|
|
|
En línea
|
|
|
|
WHK
|
<?php $data = get_data('empleados.txt'); function get_data($file){ if($buffer = explode('<br />', nl2br($buffer))){ /* Se adapta a tipo de salto MAC, Win y GNU */ foreach($buffer as $bff){ $data[$dat[4]][] = array( 'Cédula' => trim($dat[0]), 'Nombre' => trim($dat[1]), 'Apellido' => trim($dat[2]), 'Departamento' => trim($dat[4]), 'Salario' => trim($dat[5]) ); } } return $data; } ?>
Array ( [Sistemas] => Array ( [0] => Array ( [Cédula] => 15680708 [Nombre] => Patricia [Apellido] => Colmenares [Edad] => 30 [Departamento] => Sistemas [Salario] => 5200 )
[1] => Array ( [Cédula] => 20012345 [Nombre] => Carlos [Apellido] => Pérez [Edad] => 18 [Departamento] => Sistemas [Salario] => 2100 )
[2] => Array ( [Cédula] => 4509002 [Nombre] => Pedro [Apellido] => Rivero [Edad] => 62 [Departamento] => Sistemas [Salario] => 6000 )
)
[Contabilidad] => Array ( [0] => Array ( [Cédula] => 18909823 [Nombre] => María [Apellido] => Castro [Edad] => 21 [Departamento] => Contabilidad [Salario] => 2500 )
)
[Recursos Humanos] => Array ( [0] => Array ( [Cédula] => 6234561 [Nombre] => Juan [Apellido] => Villamizar [Edad] => 45 [Departamento] => Recursos Humanos [Salario] => 5500 )
[1] => Array ( [Cédula] => 16732210 [Nombre] => David [Apellido] => Gutiérrez [Edad] => 27 [Departamento] => Recursos Humanos [Salario] => 3700 )
)
[Mercadeo] => Array ( [0] => Array ( [Cédula] => 15897034 [Nombre] => Diana [Apellido] => Soto [Edad] => 28 [Departamento] => Mercadeo [Salario] => 4500 )
[1] => Array ( [Cédula] => 17098456 [Nombre] => Ana [Apellido] => Montero [Edad] => 26 [Departamento] => Mercadeo [Salario] => 2560 )
)
)
Te recomiendo cambiar edad por fecha de nacimiento porque el próximo año tendrás que modificar toda tu base de datos para cambiar todas las edades de cáda uno.
|
|
« Última modificación: 17 Julio 2011, 01:06 am por WHK »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
foto lectura, y lectura veloz, scanning y otros metodos de lectura rapida....
Foro Libre
|
Kase
|
3
|
13,004
|
4 Febrero 2014, 08:47 am
por camilo_
|
|
|
[AYUDA] Crear Archivo Excel de Solo lectura !
Programación Visual Basic
|
sebah97
|
1
|
4,619
|
29 Mayo 2010, 21:57 pm
por seba123neo
|
|
|
Ayuda Con Lectura Archivo en c++
Programación C/C++
|
ZedGe
|
2
|
2,708
|
23 Diciembre 2011, 20:32 pm
por ZedGe
|
|
|
Ayuda con la lectura de un fichero
Programación C/C++
|
DarkSorcerer
|
3
|
2,438
|
22 Noviembre 2013, 02:43 am
por Vaagish
|
|
|
Ayuda con lectura de archivo txt!! no funciona mi if
.NET (C#, VB.NET, ASP)
|
SrTrp
|
1
|
1,982
|
29 Octubre 2018, 06:07 am
por SrTrp
|
|