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

Link to comment
Share on other sites

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
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.