eian@php Posted August 26, 2010 Share Posted August 26, 2010 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. Link to comment https://forums.phpfreaks.com/topic/211786-php-parsingread-text-file/ Share on other sites More sharing options...
litebearer Posted August 26, 2010 Share Posted August 26, 2010 try... $myFile = "$textFileName"; $lines = file($myfile); $num_lines = count($lines); $i=0; while($i<$num_lines) { $temp_array = explode(" ", $lines[$i]); $sql = "INSERT INTO logged (id, name, num, datess, letters) VALUES ('$temp_array[0]', '$temp_array[1]', '$temp_array[2]', '$temp_array[3]', '$temp_array[4]'"; $result = mysql_query($sql); $i ++; } Link to comment https://forums.phpfreaks.com/topic/211786-php-parsingread-text-file/#findComment-1103959 Share on other sites More sharing options...
litebearer Posted August 26, 2010 Share Posted August 26, 2010 BTW if your db table has an auto-increment ID remove the 'id' portions from my example Link to comment https://forums.phpfreaks.com/topic/211786-php-parsingread-text-file/#findComment-1103963 Share on other sites More sharing options...
eian@php Posted August 26, 2010 Author Share Posted August 26, 2010 PROBLEM SOLVED SIR! I go through the code and it now looks like 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("\r\n", $theData); $count = 0; foreach($person as $i => $line) { $nameParts = explode(" ", $line); $q = "insert into logged (btaddress, btname, logtime, date, subjectCode) values ('" . implode("','",$nameParts) . "')"; $rw = mysql_query($q) or die("Problem with the query: $q<br>" . mysql_error()); $nameParts = explode("", $line); $count++; } ?> Link to comment https://forums.phpfreaks.com/topic/211786-php-parsingread-text-file/#findComment-1104018 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.