Results 1 to 3 of 3
  1. #1
    Join Date
    Jul 2004
    Posts
    494

    Unanswered: 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); 

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

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

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •