Jump to content

php parsing/read text file


eian@php

Recommended Posts

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

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 ++;
}

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++;

}

?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.