R
roberts
Préstamo
Gamma
Programador
$tabla = mysql_query("SELECT * FROM test"); // selecciono todos los registros de la tabla usuarios, ordenado por nombre
$cantidad = mysql_num_rows($tabla);
while ($registro = mysql_fetch_array($tabla)) { // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen
echo "
<tr>
<td>". $registro["Bib"] ."</td>
<td>". $registro["Overall_Place"] ."</td>
<td>". $registro["First_Name"] ."</td>
<td>". $registro["Last_Name"] ."</td>
<td>". $registro["Event"] ."</td>
";
}
?>
</tr>
</tbody>
</table>
<?php
if($cantidad == 0) {
echo "<center><div class='alert alert-danger alert-dismissable'>
<button class='close' data-dismiss='alert'>×</button>
<strong>Opss!</strong> No se encontraron registros
</div></center>";
}
?>
5||juan||32
6||mario||15
$user = explode($linea, '||');
echo 'ID: ' . $user[0] . '<br>';
echo 'Nombre: ' . $user[1] . '<br>';
echo 'Edad: ' . $user[2] . '<br>';
Si mal no recuerdo, los archivos CSV son los que los campos van separados por algún carácter/cadena, no? En ese caso puedes ir leyendo linea por linea y hacerle un explode para sacar cada valor.
Por ejemplo, si tienes algo como:
Insertar CODE, HTML o PHP:5||juan||32 6||mario||15
Con algo como:
PHP:$user = explode($linea, '||'); echo 'ID: ' . $user[0] . '<br>'; echo 'Nombre: ' . $user[1] . '<br>'; echo 'Edad: ' . $user[2] . '<br>';
Como podira buscar un texto en espesifico dentro del archivo CSV???? [MENTION=8317]lombervid[/MENTION]
<?php
// Busqueda de CSV para Forobeta :)
// Configuración
define('SEPARATE_CHAR', ';'); // Para división de campo con ';' puede ser '||' o cualquier otro...
define('BUFFER_SIZE', 4096); // Tamaño del buffer
// Obtener un registro
function csvGetRecord($line) {
return(explode($line, SEPARATE_CHAR));
}
// Buscar registros donde coincide la búsqueda
// No distingue entre mayúsculas y minúsculas
function csvSearch($search, $file) {
$result = array();
// Se emplea fopen para no colapsar la memoria si el fichero es muy largo como file_get_contents...
// ...o mejor usar file() que lee por lineas y va a un array y es más cómodo.
$f = fopen($file, 'r') or exit('Fichero no encontrado');
while(!feof($f)) {
$line = fgets($f, BUFFER_SIZE);
if(stripos($line, $search) !== FALSE) {
$result[] = csvGetRecord($line);
}
}
fclose($f);
return($result);
}
// Ejemplo
$registros = csvSearch('Carlos', 'fichero.csv');
print_r($registros);
Creo que esto podría valerte. Lo he hecho así al vuelo, quizá haya alguna errata, aunque espero que no 🙂.
PHP:<?php // Busqueda de CSV para Forobeta :) // Configuración define('SEPARATE_CHAR', ';'); // Para división de campo con ';' puede ser '||' o cualquier otro... define('BUFFER_SIZE', 4096); // Tamaño del buffer // Obtener un registro function csvGetRecord($line) { return(explode($line, SEPARATE_CHAR)); } // Buscar registros donde coincide la búsqueda // No distingue entre mayúsculas y minúsculas function csvSearch($search, $file) { var $result = array(); // Se emplea fopen para no colapsar la memoria si el fichero es muy largo como file_get_contents... // ...o mejor usar file() que lee por lineas y va a un array y es más cómodo. $f = fopen($file, 'r') or exit('Fichero no encontrado'); while(!feof($f)) { $line = fgets($f, BUFFER_SIZE); if(stripos($line, $search) !== FALSE) { $result[] = csvGetRecord($line); } } $fclose($f); return($result); } // Ejemplo $registros = csvSearch('Carlos', 'fichero.csv'); print_r($registros);
$result = array();
Elimina "var"
Ya no va esto en el php más nuevo.
Dejando la linea como
PHP:$result = array();
PD: Deformación profesional de otros lenguajes 😉
fclose($f);
Había una errata en la linea 26, sobraba el primer $. Ya cambiado 🙂
PHP:fclose($f);
$registros[1]
if (($gestor = fopen("resultadosoveral-gru.csv", "r")) !== FALSE) {
while (($datos = fgetcsv($gestor, 1000, ",")) !== FALSE) {
$numero = count($datos);
echo "
<tr>
<td>". $datos[0] ."</td>
<td>". $datos[1] ."</td>
<td>". $datos[2] ."</td>
<td>". $datos[3] ."</td>
$registro[1] te da un array porque es un array.
Cada $registro es un array con los campos dentro. Para ver un campo tiene que ser $registro[1][1] que es el registro 1 (empiezan por 0) y el campo 1 (empieza por 0).
Sobre el ; no se si habrás cambiar el caracter de define('SEPARATE_CHAR', ';'); para elegir qué caracter los separa. Hay que poner el que sea, si es coma o punto y coma o el que sea.
Pega aqui el fichero para ver qué lee.
// Obtener un registro
function csvGetRecord($line) {
return(explode(SEPARATE_CHAR, $line));
}
He revisado todo y lo que pasaba es que la función estaba al revés:
PHP:// Obtener un registro function csvGetRecord($line) { return(explode(SEPARATE_CHAR, $line)); }
Así es correcta man 😉
Probado en mi computadora
echo('<table>');
// Aqui se puede hacer echo de cabeceras o nombres de los campos
foreach($registros as $registro) {
echo('<tr>');
foreach($registro as $campo) {
echo('<td>'.$campo.'</td>');
}
echo('</tr>');
}
echo('</table>');
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?
Utilizamos cookies y tecnologías similares para los siguientes fines:
¿Aceptas las cookies y estas tecnologías?