Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2010, 13:36
Avatar de principiantedelphp
principiantedelphp
 
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
bucle foreach lines

Hola amigos, tanto tiempo que no andaba por acá. Bueno, el tema es el siguiente, estoy tratando de enviar datos de un archivo a la base de datos, usando lógicamente un bucle foreach.
El problema es grave, porque digamos que la información se repite de la siguiente manera:

Cita:
[Event "Dortmund (open)"]
[Site "?"]
[Date "1992.??.??"]
[Round "?"]
[White "Kramnik, Vladimir"]
[Black "Levin, F."]
[Result "1-0"]
[ECO "A01"]
[WhiteElo "2590"]
[BlackElo "2445"]
[PlyCount "63"]
[EventDate "1992.??.??"]
[Source "ChessBase"]
[SourceDate "1992.02.01"]

1. b3 d5 2. Bb2 Nf6 3. e3 g6 4. c4 dxc4 5. Bxc4 Bg7 6. Nf3 c5 7. a3 O-O 8. b4
Nbd7 9. O-O b6 10. bxc5 bxc5 11. Be2 Qb6 12. Bc3 Ba6 13. a4 Bxe2 14. Qxe2 Qe6
15. Na3 Nb6 16. Qa6 Qd7 17. Qb5 Nbd5 18. Be5 Qe6 19. Rfc1 Nd7 20. Bxg7 Kxg7 21.
Qc4 Rfc8 22. Rab1 N7b6 23. Qh4 f6 24. a5 Nd7 25. Qc4 Rab8 26. h3 Nc7 27. Qa4
Na6 28. Nb5 Qc6 29. Qc4 Ra8 30. Nfd4 Ne5 31. Nxc6 Nxc4 32. Nbxa7 1-0

[Event "Wien"]
[Site "?"]
[Date "1996.??.??"]
[Round "?"]
[White "Kortchnoi, V."]
[Black "Kramnik, Vladimir"]
[Result "0-1"]
[ECO "A06"]
[WhiteElo "2635"]
[BlackElo "2765"]
[PlyCount "84"]
[EventDate "1996.??.??"]
[Source "ChessBase"]
[SourceDate "1996.06.01"]

1. Nf3 d5 2. b3 c5 3. e3 Nf6 4. Bb2 e6 5. c4 dxc4 6. bxc4 Nc6 7. Be2 Be7 8. O-O
O-O 9. Qc2 b6 10. a3 Bb7 11. Ng5 h6 12. Nh3 Rc8 13. d3 Rc7 14. f4 Ne8 15. f5
Bg5 16. Nxg5 Qxg5 17. Rf3 Ne7 18. e4 exf5 19. Rg3 Qh4 20. Nc3 fxe4 21. dxe4 Ng6
22. Nd5 Bxd5 23. exd5 Nd6 24. Rf1 Re8 25. Bd3 Ne5 26. a4 Rce7 27. Rh3 Qg5 28.
Rg3 Qh4 29. Rh3 Qg4 30. Rg3 Qd7 31. Qd2 Ng6 32. Qc3 Ne5 33. Qc1 f6 34. Bxe5
fxe5 35. Qxh6 e4 36. Qh5 Re5 37. Qg6 exd3 38. Rh3 Rf5 39. Qh7+ Kf8 40. Rxf5+
Nxf5 41. Rf3 Re5 42. g4 d2 0-1

Hice esto, pero, no resulto (me imprime 16000 filas vacías!)

Cita:
$lines = file('kramnik.pgn');
foreach ($lines as $line_num => $line) {
mt_srand (time());
$players = $datos[5];
$result=$datos[7];
$whiteelo=$datos[9];
$blackelo=$datos[10];
$year=$datos[3];
$event=$datos[1];
$eco=$datos[8];
$q = "INSERT INTO chesstemporal (players, result, whiteelo, blackelo, year, event,eco)

values ('$players', '$result', '$whiteelo', '$blackelo', '$year', '$event', '$eco')";
mysql_query($q, $link);
}
mysql_close($link);
?>
Creo que el problema está en que el archivo contiene datos separados por un "enter" y luego de un tiempo (algunas filas) vuelve a repetirse y no se como colocar esto en una única fila. Los campos que necesito son 1,3,5,7,8,9 y 10, o sea 7 datos de las etiquetas).
Cualquier ayuda, bienvenida y gracias de antemano