• User

    Recordset In Php

    ho il seguente problema: devo popolare una tabella mysql (storica)prendendo i dati da una altra tabella mysql (attuale). Per farlo ho implementato il sequente codice:
    [php]
    while(($array2= mysql_fetch_array($Recordset2))){
    while (($array1= mysql_fetch_array($Recordset1))){
    if(($array2['dt_nbr_serie']) != ($array1['dt_nbr_serie']) && ( empty($array2['dt_data_add']))) {
    $query_inser2=( "INSERT INTO storica(dt_nbr_bam,dt_data_bam,dt_provenienza,dt_reg_mnemo,dtmagazzino,dt_sett_in,dt_bolla_car,dt_data_bolla,dt_nbr_voce,dt_codice_art,dt_descriz,dt_nome_cent,dt_nbr_serie,dt_nbr_ril_guas,dt_centrale,dt_data_add,dt_con_rimpiazzo,stato) VALUES('$array2[dt_nbr_bam]','$array2[dt_data_bam]','$array2[dt_provenienza]','$array2[dt_reg_mnemo]','$array2[dtmagazzino]','$array2[dt_reg_mnemo]','$array2[dt_sett_in]','$array2[dt_bolla_car]','$array2[dt_nbr_voce]','$array2[dt_codice_art]','$array2[dt_descriz]','$array2[dt_nome_cent]','$array2[dt_nbr_serie]','$array2[dt_nbr_ril_guas]','$array2[dt_centrale]','$array2[dt_data_add]','$array2[dt_con_rimpiazzo]','A')");
    $inser1= mysql_query($query_inser2,$miaconnessione) or die(mysql_error());}
    else if (($array2['dt_nbr_serie']) != ($array1['dt_nbr_serie']) || ( !empty($array2['dt_data_add']))){
    $query_inser2=( "INSERT INTO storica(dt_nbr_bam,dt_data_bam,dt_provenienza,dt_reg_mnemo,dtmagazzino,dt_sett_in,dt_bolla_car,dt_data_bolla,dt_nbr_voce,dt_codice_art,dt_descriz,dt_nome_cent,dt_nbr_serie,dt_nbr_ril_guas,dt_centrale,dt_data_add,dt_con_rimpiazzo,stato) VALUES('$array2[dt_nbr_bam]','$array2[dt_data_bam]','$array2[dt_provenienza]','$array2[dt_reg_mnemo]','$array2[dtmagazzino]','$array2[dt_reg_mnemo]','$array2[dt_sett_in]','$array2[dt_bolla_car]','$array2[dt_nbr_voce]','$array2[dt_codice_art]','$array2[dt_descriz]','$array2[dt_nome_cent]','$array2[dt_nbr_serie]','$array2[dt_nbr_ril_guas]','$array2[dt_centrale]','$array2[dt_data_add]','$array2[dt_con_rimpiazzo]','U')");
    $inser1= mysql_query($query_inser2,$miaconnessione) or die(mysql_error());}
    }
    mysql_data_seek($Recordset1,0);
    }
    //mysql_data_seek($Recordset2,0);
    mysql_data_seek($Recordset1,1);
    [/php]

    tutto va bene alla prima esecuzione della pagina web, ma se ricarico la pagina con il pulsante aggiorna in explorer i record della tabella storica si moltiplicano.
    come posso fare per risolvere il problema??? non riesco a capire??? se è possibile qualcuno mi dia una mano. ciao e grazie


  • User Attivo

    Puoi fare così:

    1. imposta una variabile di sessione con la data dell'esecuzione dell'ultima query di inserimento

    2. all'inizio del ciclo while inserisci una if in cui si analizz la variabile di sessione: se hai eseguito la query da pochi secondi, salta gli inserimenti, se invece non è impostata, fai eseguire le query.

    Se ques


  • User

    @piccolosocrate said:

    Puoi fare così:

    1. imposta una variabile di sessione con la data dell'esecuzione dell'ultima query di inserimento

    2. all'inizio del ciclo while inserisci una if in cui si analizz la variabile di sessione: se hai eseguito la query da pochi secondi, salta gli inserimenti, se invece non è impostata, fai eseguire le query.

    Se ques
    avevo gia pensato ad una soluzione del genere ma perche dovrei farlo?? alla fine e solo un aggiornamento di una pagina dovrebbe rimanere sempre la stessa. e poi in termini di codice come dovrebbe essere scritto perche ho provato a farlo ma penso di averlo scritto in modo errato. se qualcuno puo modificare il mio codice mi farebbe un grande piacere. ciao e grazie


  • User

    non c'è un altro modo per risolvere il problema?? questo aggiornamento lo devo fare una volta a settimana quindi la variabile di sessione non mi aiuta. avete altri suggerimenti?? ciao grazie