If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 
Go Back  dBforums > Data Access, Manipulation & Batch Languages > PHP > Inserting 31102 records from an existing table

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 03-24-11, 13:14
gilgalbiblewhee gilgalbiblewhee is offline
Registered User
 
Join Date: Jul 2004
Posts: 494
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.

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

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

echo 
"<span style=\"color: orange;\">".$num."</span><br />\n";



$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 />\n";

        
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 /\n>";

            }

            if(
$splitTds==count($tdInnerHTML[1])-1){

                
$tdarr implode("', '"$tds);

                
$sql "INSERT INTO ".$dbTable3." (".$fieldarr.") VALUES ('".$tdarr."')";

                echo 
"<span style=\"color: green;\">".$sql."</span><br /\n>";

                
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); 
Reply With Quote
  #2 (permalink)  
Old 03-24-11, 13:24
gilgalbiblewhee gilgalbiblewhee is offline
Registered User
 
Join Date: Jul 2004
Posts: 494
It's this area that I'm looking for clarification:
PHP Code:
    $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.
Reply With Quote
  #3 (permalink)  
Old 03-24-11, 13:37
gilgalbiblewhee gilgalbiblewhee is offline
Registered User
 
Join Date: Jul 2004
Posts: 494
Ok. Let me clarify further. Since
31102/32=971.9375
Rounded up to 972
as mentioned in this formula:
PHP Code:
$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.
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On