[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
 
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.
 
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

 
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
 

Discussioni simili