Cita:
Iniciado por victorfz
Hola quiero leer un ficheros csv para importarlo a unaBD y la función getcsv me viene muy bien salvo por un tontería que ahora no caigo sobre con la forma de resolverla.
Este ejemplo sacado de php.net lo que hace es que lee filas hasta que encuentra una fila vacía y lo que yo necesito es que lea un número fijo de filas (ej.: 25 dilas y tres columnas).
Lo ideal sería cambiar el bucle while por un bucle for pero no se cómo hacerlo.
Gracias de antemano.
Un saludo.
Código PHP:
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
Lo que hace el fgetcsv es que te trae toda la fila, y vos vas a trabajando por campo en cada fila, por lo tanto, lo que podes hacer para trabajar con determinadas filas, es lo siguiente:
Código PHP:
<?php
$row = 0;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
//Me salteo la primer fila ya que generalmente tiene los titulo
if($row > 0){
$dato1 = $data[0]; //primera columna
$dato2 = $data[1]; //segunda columna
$dato3 = $data[24]; //vigesimoquinta columna
//y asi sucesivamente.
}
$row = $row + 1; //aca voy contando las filas
}
fclose($handle);
}
?>
[/QUOTE]
Espero haber sido de utilidad.
Saludos,