ciao questo è il mio codice:

Codice PHP:
    $records file($file);

    

    
$rec_aggiornati    =0;

    
$rec_inseriti        =0;



    for(
$i=0;$i<sizeof($records);$i++){

            
//ora divido il record in tante stringhe a seconda del ;

        
$campo=explode(";",$records[$i]);

        

        
//recupero i vari campi che sono 20
        
$campo1=$campo[0];
        
/*
        ....
        */



        
if(mysql_num_rows(mysql_query("select codice from $this->tabella where codice='$campo1'"))>0){
        
//aggiorno
        
$rec_aggiornati++;
        
$_SESSION["$rec_aggiornati"]=$rec_aggiornati;

        
$query="update $this->tabella set .....campi where codice='$campo[0]'";
        
//echo $query;


        
mysql_query($query) or die (mysql_error());

    }else{
        
$rec_inseriti    ++;
        
$_SESSION["$rec_inseriti"]=$rec_inseriti;

        
//inserisco

        
$query="insert into $this->tabella ...campi..";

        
//echo $query;


        
mysql_query($query) or die (mysql_error());
    }


    }

    

    echo 
"RECORD INSERITI: $rec_inseriti";

    echo 
"

"
;

    echo 
"RECORD AGGIORNATI: $rec_aggiornati"

se lo eseguo su un file che contiene 12000 prodotti si blocca...non ho aspettato oltre 3 minuti...

se invece tolgo il controllo e gli faccio fare solo le insert in 5 secondi carica tutto!