Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Dipende dal posto in cui hai messo l'istruzione echo.
    Talvolta capita di inserirla ad esempio all'interno di un ciclo while o for piuttosto che dopo la chiusura di questo, e la frittata è fatta...
    Se vuoi posta il tuo codice (solo la parte relativa a query, tracking e echo), gli diamo un'occhiata.
    Ciao
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #12
    grazie mille...
    ho provato a mettere l'echo al di fuori del ciclo...
    ma come risultato mi dà 0.0376 secondi... troppo pochi...
    tieni presente che l'insert è di circa 15.000 record... magari fosse così veloce

    ecco il codice...

    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>
    ";

    //controllo tempo di insert into tbl i1_sis
    $microtime_1 = explode (" ",microtime());
    $microtime_1 = ((float) $microtime_1[0] + (float) $microtime_1[1]);

    connetti();
    $query= "insert into i1_sis (Rif_id,Nome,Nome2)
    values ('$cap1','$localita1','$prov1')";

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

    $microtime_2 = explode (" ",microtime());
    $microtime_2 = ((float) $microtime_2[0] + (float) $microtime_2[1]);




    } //chiusura ciclo


    echo "<font face=arial size=1>La query è stata eseguita in " .round (((float) ($microtime_2-$microtime_1)), 4). " secondi.
    \n</font> ";


    ciao e grazie....

  3. #13

    Questione di posizioni

    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> ";
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  4. #14
    perfetto, eccezionale...
    ultima cosa e poi ti lascio...
    per avere i minuti basta DIVIDERE per 60 giusto??

    echo "<font face=arial size=1>La query è stata eseguita in " .round (((float) ($microtime_2-$microtime_1) /60 ), 4). " secondi.
    \n</font> ";

    RETIFICO .... NON MOLTIPLICARE MA DIVIDERE

  5. #15
    Cosa intendi per "avere i minuti"?
    Quel microtime così com'è esprime il tempo in secondi ed eventuali numeri decimali arrotondati alla quarta cifra decimale.

    Ovvero, se ci mette 4,706 secondi, sai che i secondi sono 4, no?

    Forse intendevi arrotondare la cifra ai soli secondi?
    Non ti interessano le cifre decimali?
    A mio avviso sono importanti, metti di avere 4.9988 oppure 4.0001: non è per niente la stessa cosa, ed arrotondando all'unità perdi l'apprezzamento di questa differenza nell'elaborazione dello script.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.