Page 1 of 1

php parsing/read text file

Posted: Thu Aug 26, 2010 7:48 am
by eian@php
Hi to all!! I am still new to php.. I need help in reading my text file and inserting it to mysql database.
My text file contains 5 fields and has several rows..
The format of my text file:

1 romeo 8877 2010-07-07 abc1
2 nick 7686 2010-07-07 abc2
3 mark 5456 2010-07-07 abc3
4 karm 3432 2010-07-07 abc4

The first field is an INTEGER, the second third fifth fields are VARCHAR and the fourth field is a DATE.
I am having trouble with my php code..
My code is this:

<?php
mysql_connect("localhost","root","");
mysql_select_db("personss");

$textFileName = $_POST['textFileName'];

$myFile = "$textFileName";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
fclose($fh);

$person = explode("\n", $theData);
$count = 0;

foreach($person as $i => $line) {
$nameParts = explode(" ", $person[$count]);


$q = "insert into logged (id, name, num, datess, letters) values ('" . implode("','",$nameParts) . "')";
$rw = mysql_query($q) or die("Problem with the query: $q<br>" . mysql_error());

}
?>

This code can insert to the database but it only inserts the first row and it loops the insert according to how many rows there are in the text file..For example in my text file there are are 4 rows, it inserts the first row: 1 romeo 8877 2010-07-07 abc1 4times..If there are 6 rows, 6 times the first row will also be inserted..

What i need Sir's is that i need to be able to insert the rows line by line.. if there are 4 rows, i need to insert them all in the database.. Please help me to fix the code.

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 8:04 am
by shawngoldw
what about $count++ after you explode person[count]

shawn

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 8:25 am
by eian@php
I tried but didnt work Sir

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 8:49 am
by shawngoldw
On closer look, you don't actually need $person[$count] or $count at all. Replace $person[$count] with $line.

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 9:29 am
by eian@php
uhm..it worked Sir..tnx very much!!.
One last thing.. after each insert in the fifth field Sir.. a space is included..and in my mysql it is displayed as a special character just beside after the last character of the fifth field

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 9:37 am
by shawngoldw
Try changing this:

Code: Select all

$person = explode("\n", $theData);
to:

Code: Select all

$person = explode("\r\n", $theData);
Also please, you don't have to call me sir :wink:


Shawn

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 9:49 am
by eian@php
WOW!! WORKED LIKE A CHARM!! TY VERY MUCH SIR!
SIR is my sign of respect to you.

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 9:53 am
by shawngoldw
No problem.

Re: php parsing/read text file

Posted: Thu Aug 26, 2010 1:05 pm
by McInfo
file() will read a text file into an array.

Also see fgetcsv().