[PHP] Update tabella da file csv

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Ciao a tutti,
Vorrei aggiornare la tabella del mio db tramite caricamento di un file.csv ma non riesco ...potete aiutarmi?
Codice:
<?php

$file = "ok.csv";

require 'config.php';
require 'connect.php';

$handle = fopen($file, "r");

$sql=" UPDATE completo SET
 DATO1 = '$dato1' ,DATO2 = '$dato2'  ,DATO3 = '$dato3'  ,DATO4 = '$dato4' ,DATO5 = '$dato5' ,DATO6 = '$dato6' ,DATO7 = '$dato7' ,DATO8 = '$dato8' ,DATO9 = '$dato9' ,DATO10 = '$dato10'
,DATO11 = '$dato11' ,DATO12= '$dato12' ,DATO13 = '$dato13',DATO14 = '$dato14',DATO15 = '$dato15' ,DATO16 = '$dato16',DATO17 = '$dato17' ,DATO18 = '$dato18',DATO19 = '$dato19' ,DATO20 = '$dato20'
,DATO21 = '$dato21' ,DATO22 = '$dato22',DATO23 = '$dato23',DATO24 = '$dato24',DATO25 = '$dato25' ,DATO26 = '$dato26',DATO27 = '$dato27',DATO28 = '$dato28',DATO29 = '$dato29' ,DATO30 = '$dato30'
,DATO31 = '$dato31',DATO32 = '$dato32',DATO33 = '$dato33',DATO34 = '$dato34',DATO35 = '$dato35',DATO36 = '$dato36',DATO37 = '$dato37',DATO38 = '$dato38',DATO39 = '$dato39',DATO40 = '$dato40'
,DATO41 = '$dato41',DATO42 = '$dato42',DATO43 = '$dato43',DATO44 = '$dato44',DATO45 = '$dato45' ,DATO46 = '$dato46' ,DATO47 = '$dato47',DATO48 = '$dato48',DATO49 = '$dato49',DATO50 = '$dato50'
,DATO51 = '$dato51',DATO52 = '$dato52'
WHERE DATO9='$dato9' ";

       
$Lcol = 0;
while( !feof($handle) )
{
 

    if ($Lcol == 0) $Lcol = count($col);
 
    else
    {
        $q = $sql;
        $i = 1;
        foreach($col as $key => $val)
        {
            if ( empty($val) ) $val = 0;  // riga da inserire
            $q .= "'".addslashes($val)."'".( $i<$Lcol ? "," : ")" );
            $i++;
           
        }
        if ( $i > $Lcol )
        {          
            // var_dump($q); echo "<br /><br />";
                     
            $result = mysql_query($q);
           
            if (!$result)
            {
                die("Errore nella query $query : " . mysql_error());
            }
        }
    }
}
            echo "<br><br><br><center><b><h1><font color='white'>FILE DI AGGIORNAMENTO CARICATO CON SUCCESSO !</font></h1></center></b> ";
fclose($handle);

mysql_close();
?>
Questo e' cio che mi restituisce

Fatal error: Maximum execution time of 30 seconds exceeded in /membri/MIOSITO/PROVE_VARIE/update.php on line 25
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, fai le prove con una sola iterazione, metti break per bloccare il ciclo. In questo modo puoi stampare a video le variabili per vedere se tutto ok.
 

giancadeejay

Utente Attivo
26 Ott 2010
224
0
16
torino
Ciao Criric e grazie mille per la risposta ma mi sto appassionado al php da poco e non sono proprio esperto ..
Se potessi aiutarmi sul codice sarebbe meglio... mi sto spaccando la testa per riuscire a caricare sto benedetto file.csv e aggiornare il precedente caricato..ma niente...
Il mio algoritmo sul file postato e':
1-Carica il file,csv.
2-il file aggiorna 52 campi e circa 6000 righe.
3-dove il campo DATO9 e' quello che comanda,quindi se esiste reinserisci riga
4-reinserisci riga ma controlla il $dato50
5-se il $dato50 del $dato9 e' uguale non cambiare ,ma se' e' diverso sovrascrivi.

Qualcuno riesce a darmi una mano?

Grazie in anticipo a tutti

 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
prova anche ad inserire questa istruzione per prolungare il tempo di vita dello script
PHP:
<?php
set_time_limit ( 100);//eventualmente aumentando il tempo, ho messo 100 sec
//.....
?>
, ma comunque riguarda lo script in modo che non sia troppo pesante