Foros del Web » Programando para Internet » PHP »

No me imprime las filas:

Estas en el tema de No me imprime las filas: en el foro de PHP en Foros del Web. Cita: $archivo= file('kramnik2.txt'); foreach ($archivo as $numero_linea => $datos_linea[]) { $q = "INSERT INTO chesstemporal (event, site, date, round, whiteplayer, blackplayer, result, eco, whiteelo, blackelo, ...
  #1 (permalink)  
Antiguo 12/09/2010, 14:32
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 8 meses
Puntos: 1
No me imprime las filas:

Cita:
$archivo= file('kramnik2.txt');
foreach ($archivo as $numero_linea => $datos_linea[])
{
$q = "INSERT INTO chesstemporal (event, site, date, round, whiteplayer, blackplayer, result, eco, whiteelo, blackelo, plycount, eventdate, source, sourcedate, empty1) values ('$datos_linea[0]', '$datos_linea[1]', '$datos_linea[2]', '$datos_linea[3]', '$datos_linea[4]', '$datos_linea[5]', '$datos_linea[6]', '$datos_linea[7]', '$datos_linea[8]', '$datos_linea[9]', '$datos_linea[10]', '$datos_linea[11]', '$datos_linea[12]', '$datos_linea[13]', 'NULL')";
}

mysql_query($q, $link);
mysql_close($link);
Me imprime solo las primeras 14 filas de un archivo en una base de datos, pero las restantes no las imprime (En total son 110) y no se porque.
Cuando cambio la posición de la llave "}" y la coloco debajo de "mysql_query($q, $link);" imprime todo, pero una linea por vez.
  #2 (permalink)  
Antiguo 25/09/2010, 05:45
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: No me imprime las filas:

Hola pdelphp, algunas correcciones:

Código PHP:

<?php
//Leer el archivo y gaurdarlo en un array con 110 elementos
$archivofile('kramnik2.txt');

$q ""//Declaras la variable vacía
foreach ($archivo as $n_linea => $linea// NO puedes usar [] en lectura
{
$q .= "INSERT INTO chesstemporal 
(event, site, date, round, whiteplayer, blackplayer, result, eco, whiteelo, blackelo, plycount, eventdate, source, sourcedate, empty1) 
values 
("
.$datos_linea[0].", ".$datos_linea[1].", ".$datos_linea[2].", ".$datos_linea[3].", ".$datos_linea[4].", ".$datos_linea[5].", ".$datos_linea[6].", ".$datos_linea[7].", ".$datos_linea[8].", ".$datos_linea[9].", ".$datos_linea[10].", ".$datos_linea[11].", ".$datos_linea[12].", ".$datos_linea[13].", 'NULL');";
}
//Ahora $q tiene 110 inserts que se ejecutarán todos juntos
if(!$query mysql_query($q$link))die(mysql_error()); //Comprueba los errores, no continúes si hay alguno
mysql_close($link); 

?>
Por otra parte, determinados servidores mysql cierran la conexión cuando la query tarda mucho y te dan error "2006", si este es tu caso, cambia el código y haz esto:

Código PHP:
<?php
//Leer el archivo y gaurdarlo en un array con 110 elementos
$archivofile('kramnik2.txt');


foreach (
$archivo as $n_linea => $linea// NO puedes usar [] en lectura
{
$q "INSERT INTO chesstemporal 
(event, site, date, round, whiteplayer, blackplayer, result, eco, whiteelo, blackelo, plycount, eventdate, source, sourcedate, empty1) 
values 
("
.$datos_linea[0].", ".$datos_linea[1].", ".$datos_linea[2].", ".$datos_linea[3].", ".$datos_linea[4].", ".$datos_linea[5].", ".$datos_linea[6].", ".$datos_linea[7].", ".$datos_linea[8].", ".$datos_linea[9].", ".$datos_linea[10].", ".$datos_linea[11].", ".$datos_linea[12].", ".$datos_linea[13].", 'NULL');";
//Un insert por vez a la base de datos
if(!$query mysql_query($q$link))die(mysql_error()); //Comprueba los errores, no continúes si hay alguno

}

mysql_close($link); 

?>
Ánimo, a ver qué pasa!, un saludo

Etiquetas: filas, imprime
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 17:13.