In questo modo effettui il tracking solo dell'ultima query.
Il tempo di esecuzione è quello che intercorre tra l'assegnazione di microtime alla prima variabile ($microtime_1) e l'assegnazione di microtime alla seconda ($microtime_2).
Nel tuo script vengono calcolate ed assegnate ad ogni ciclo perché sono entrambe all'interno del for.
Ma ogni riassegnazione di valore ad una variabile annulla il valore precedente, e nel calcolo finale la differenza tra $microtime_2 e $microtime_1 è solo la durata dell'ultima query del ciclo (ed infatti 3 centesimi di secondo potrebbe essere il tempo medio di esecuzione di una query su un server in hosting
).
Ergo, entrambe vanno messe fuori dal ciclo, una prima e una dopo!
codice:
$microtime_1 = explode (" ",microtime());
$microtime_1 = ((float) $microtime_1[0] + (float) $microtime_1[1]);
if ($submit == 'Salva')
{
for ($i=0; $i<count($_POST['provincia']);$i++) {
$prov1= $_POST ['provincia'][$i];
echo "<font face=arial size=1>Provincia: $prov1</font> ";
$cap1= $_POST ['cap'][$i];
echo "<font face=arial size=1>Cap: $cap1</font> ";
$localita1= $_POST ['localita'][$i];
$localita2 = stripslashes($localita1); //solo per l'echo
echo "<font face=arial size=1>Localita: $localita2</font>
";
connetti();
$query= "insert into i1_sis (Rif_id,Nome,Nome2)
values ('$cap1','$localita1','$prov1')";
mysql_query ($query) or die (mysql_error());
} //chiusura ciclo
$microtime_2 = explode (" ",microtime());
$microtime_2 = ((float) $microtime_2[0] + (float) $microtime_2[1]);
echo "<font face=arial size=1>La query è stata eseguita in " .round (((float) ($microtime_2-$microtime_1)), 4). " secondi.
\n</font> ";