ho un file csv ke racchiude i dati ke andrebbero dentro una tabella...esisste uno script (o phpmyadmin stesso) ke mi importa tutto nel db?
ho un file csv ke racchiude i dati ke andrebbero dentro una tabella...esisste uno script (o phpmyadmin stesso) ke mi importa tutto nel db?
up
Ciao, io utilizzo questo:
$query="LOAD DATA INFILE '".$file."' REPLACE INTO TABLE `nome_tabella` FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES";
comunque per maggiori specifiche
http://dev.mysql.com/doc/mysql/en/load-data.html
ciao
ciao
http://dev.mysql.com/doc/mysql/en/load-data.html
ti posto un esempio di codice:
$query="LOAD DATA INFILE '".$file."' REPLACE INTO TABLE `nome table` FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' IGNORE 1 LINES";
perbacco...dopo un paio di mesi c'è sempre qualcuno ke mi pensa...avevo risolto facendomi uno script ke mi creava le query, ma ora nn ne avrò + di bisogno...thanks a lot
ma nn ho capito una cosa...il csv dev'essere sul pc locale o sul hosting del dominio?
se invece hai bisogno di elaborare in qualche modo (da php) i dati contenuti nel csv per poterli importare in un tuo formato che non rispecchia esattamente quello del csv, puoi usare questa fuzione che converte le righe del csv in un array bidimensionale. avendo i dati nell'array, a questo punto, puoi elaborarli da php.
quest'ottima funzione l'ho trovata tra i contributi degli utenti di www.php.net
l'array contiene ogni riga del csv in elementi diversi, e ogniuno di questi elementi è un altro array contenente i vari dati per ogni riga di csv.
esempio di utilizzo:Codice PHP:
/*
Restituisce un array bidimensionale contenente tutti i campi di un file CSV, potenziato per i CSV creati da Excel.
test1;test2;test3;test4;"test5
test5b
test5c";test6
Supporta i campi stringa delimitati da " contenenti andate accapo.
Codice: [url]http://it2.php.net/manual/it/function.fgetcsv.php[/url]
Esempio:
$content = join('',file('test.csv'));
$liste = csv2array($content);
print_r($liste);
*/
function csv2array($content, $delim = ';', $encl = '"', $optional = 1) {
if ($content[strlen($content)-1]!="\r" && $content[strlen($content)-1]!="\n")
$content .= "\r\n";
$reg = '/(('.$encl.')'.($optional?'?(?(2)':'(').'[^'.$encl.']*'.$encl.'|[^'.$delim.'\r\n]*))('.$delim.'|\r\n)/smi';
preg_match_all($reg, $content, $treffer);
$linecount = 0;
for ($i = 0; $i<=count($treffer[3]);$i++) {
$liste[$linecount][] = $treffer[1][$i];
if ($treffer[3][$i] != $delim)
$linecount++;
}
unset($linecount);
unset($i);
unset($reg);
unset($content);
unset($delim);
unset($encl);
unset($optional);
unset($treffer);
return $liste;
}
Codice PHP:
$liste = csv2array(join('', file($path_e_nome_file_csv)));
for ($i=0; $i<count($liste); $i++) {
// lettura dati dall'array e elaborazione
}
unset($i);
ho un problema analogo... non potendo utilizzare load data, ho usato los script postato da OhMyGod, ma se prendo un file excel (.xls) e lo converto in .csv ottengo un file che, se applico lo script php fornisce caratteri strani, non i risultati (print_r($liste))... perchè? excel aggiunge cose strane ai file csv???
Mick: Be Simply Natural
ho provato ad uasare questo codice ma non va
$liste = csv2array(join('', file($path_e_nome_file_csv)));
for ($i=0; $i<count($liste); $i++) {
echo $liste[$i]."
";
}
unset($i);
dove sbaglio?
dicci ke problema haiOriginariamente inviato da abweb
ho provato ad uasare questo codice ma non va
$liste = csv2array(join('', file($path_e_nome_file_csv)));
for ($i=0; $i<count($liste); $i++) {
echo $liste[$i]."
";
}
unset($i);
dove sbaglio?