Inserting 31102 records from an existing table

I want to insert 31102 records into a db table from an html table.

I wanted to make it dependent on the number of the page. When page=1 then it would insert the first set of records. WHen it’s 2 the 2nd set. This way the browser won’t freeze.

$num=round(count($trInnerHTML[1])/32);
echo "<span style=\\"color: orange;\\">".$num."</span><br />\
";

$limit=($page+1)*$num;
$tds = array();
for($getTds=($page-1)*$num; $getTds<$limit; $getTds++){//counting the trs
	if($getTds!==0){
		preg_match_all("#<td.*>(.+)</td#Ui", $trInnerHTML[1][$getTds], $tdInnerHTML);
		//print_r($tdInnerHTML[1]);
		echo "<span style=\\"color: red;\\">".count($tdInnerHTML[1])."</span>";
		//echo "<br />\
";
		for($splitTds=0; $splitTds<count($tdInnerHTML[1]); $splitTds++){
			if($splitTds!==0){
				$tds[] = addslashes($tdInnerHTML[1][$splitTds]);
				echo "<span style=\\"color: blue;\\">".$tdInnerHTML[1][$splitTds]."</span><br /\
>";
			}
			if($splitTds==count($tdInnerHTML[1])-1){
				$tdarr = implode("', '", $tds);
				$sql = "INSERT INTO ".$dbTable3." (".$fieldarr.") VALUES ('".$tdarr."')";
				echo "<span style=\\"color: green;\\">".$sql."</span><br /\
>";
				mysql_query($sql) or die(mysql_error());
				$tds = array();
			}
		}
	}
}
mysql_close($con);

//then redirect them to the index
$add=$page+1;
echo "Location: create_bible.php?type=create&table=bible&page=".$add;
header("Location: create_bible.php?type=create&table=bible&page=".$add);

And the question is?

How do you associate the $page with the for loop? So that the 1st page will insert the 1st set of records then the next page will insert the next set…

It’s this area that I’m looking for clarification:

	$start=$page*$num;
	$limit=$page*$num;
	$tds = array();
	echo "page = ".$page;
	for($getTds=$start; $getTds<$limit; $getTds++){//counting the trs

You might see some changes from the code above since I’m working on this.

Ok. Let me clarify further. Since
31102/32=971.9375
Rounded up to 972
as mentioned in this formula:

$num=round(count($trInnerHTML[1])/32);

Each page should have 972 records to insert in the database table.
But page 1 will insert records 1-972;
page 2 will insert records 973-1945 (which is 973+972);
page 3 will insert records 1946-2918 (which is 1946+972);
and so on up to 31102.

how often will this occur?
how are the 31102 records being created?

The records are already in a table and are taken to be inserted:

$file="saveddbtable/bible.htm";
$contents_of_page = file_get_contents($file);
preg_match_all("#<th.*>(.+)</th#Ui", $contents_of_page, $thInnerHTML);

//looking for the tds
preg_match_all("#<tr.*>(.+)</tr#Ui", $contents_of_page, $trInnerHTML);

the records are already in a table, and you want to insert them into another table?

forget the paging

just issue a single INSERT/SELECT statement and they’re all copied over easily (and efficiently) in one step

I’m testing it on my HeidiSQL but I can’t do the same once I upload on the server.

you cannot issue an SQL statement?

isn’t that an INSERT statement in post #1 ?

why do you think you can’t run an INSERT statement with the SELECT option?

$file="saveddbtable/bible.htm"; 
$contents_of_page = file_get_contents($file);

This is not a table. It’s a text file.

Yes I know. But within the text file is a huge table but I figure before getting into that I should’ve looked into the reg exp first: