Back to top

Autore Topic: Caricare Csv in database Mysql di Joomla  (Letto 12708 volte)

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Caricare Csv in database Mysql di Joomla
« il: 08 Mag 2010, 18:43:01 »
Salve
cerco da un po di giorni, 3, di creare uno script che inserisca i dati di un file Csv, residente nella root, in una tabella del database di joomla (tabella con i campi gia definiti).
Lo script in questione
<?php
$sql="LOAD DATA INFILE'/web/htdocs/www.pippo.it/home/prova.csv' INTO TABLE `Prova` FIELDS TERMINATED BY ','
 ";
?>


non ricevo errori ma non mi carica i valori nella tabella.
Potete darmi un aiuto?

Offline santograz

  • Abituale
  • ****
  • Post: 907
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #1 il: 08 Mag 2010, 19:20:17 »
Ciao,
probabilmente non è questo il problema, ma mi pare che la sintassi di questo comando preveda uno spazio dopo INFILE.
Un esperto mi ha detto:"Per avere un sito web sicuro, installalo su di un server locale, poi spegnilo e stacca i cavi". Mi hanno rubato il computer.

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #2 il: 09 Mag 2010, 11:26:19 »
Fatto ma non succede nulla. Ho effettuato anche il mysql_connect ma nulla. :-\

Offline santograz

  • Abituale
  • ****
  • Post: 907
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #3 il: 09 Mag 2010, 11:57:43 »
Sicuro del percorso? Prova ad usare il path di Joomla...
Un esperto mi ha detto:"Per avere un sito web sicuro, installalo su di un server locale, poi spegnilo e stacca i cavi". Mi hanno rubato il computer.

Offline kuvier00

  • Appassionato
  • ***
  • Post: 440
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #4 il: 09 Mag 2010, 12:34:04 »
Prova a caricare il CSV da phpMyAdmin

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #5 il: 09 Mag 2010, 13:45:58 »
non ricevo errori ma non mi carica i valori nella tabella.

se usi le classi di joomla per eseguire il sql, hai attivato il debug? (se no le exceptions sono intercettate: nessun errore visibile)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #6 il: 09 Mag 2010, 18:27:51 »
Ho attivato il debug di sistema ma continua a non darmi messaggi di errore!?
Ciao

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #7 il: 09 Mag 2010, 18:56:57 »
prova a specificare anche le terminazioni di linea ed i caratteri di ENCLOSED. eventualmente prova il modificatore LOCAL.

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #8 il: 09 Mag 2010, 21:46:27 »
Ci ho provato ma non funziona
$sql="LOAD DATA INFILE '/web/htdocs/www.pippo.it/home/prova.csv' INTO TABLE Prova FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY """" LINES TERMINATED BY '\n'
";
anzi ricevo il messaggio
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /web/htdocs/www.pippo.it/home/load.php on line 8

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #9 il: 09 Mag 2010, 22:01:49 »
 :D ma lo hai scritto in visual basic?

$sql="LOAD DATA INFILE '/web/htdocs/www.pippo.it/home/prova.csv' INTO TABLE Prova FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY \"\" LINES TERMINATED BY '\\n'";

oppure

$sql="LOAD DATA LOCAL INFILE '/web/htdocs/www.pippo.it/home/prova.csv' INTO TABLE Prova FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY \"\" LINES TERMINATED BY '\\n'";


ciao, marco.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #10 il: 09 Mag 2010, 22:04:48 »
/web/htdocs/www.pippo.it/home/load.php on line 8

sicuro di essere all'interno di joomla? ovvero che il file sia processato da joomla, se no devi controllare tu il funzionamento della query, non serve il debug di joomla.

ciao,
marco
 
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #11 il: 10 Mag 2010, 09:59:28 »
Si sono all'interno di joomla, sia il file php che quello csv si trovano nella mia root.
Avevo pensato di fare un import da phpmyadmin e poi di incollare il codice php che viene prodotto cambiando solo il percorso del file:
<?php
$link = mysql_connect('***', '***', '***');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
$sql = "LOAD DATA LOCAL INFILE \'/web/htdocs/www.pippo.it/home/prova.csv' INTO TABLE `Prova` FIELDS TERMINATED BY \',\' ENCLOSED BY \'\"\' ESCAPED BY \'\\\\\' LINES TERMINATED BY \'\\r\\n\'# 1 riga/e modificata.\n"
    . "";
?>
pensavo fosse una buona idea ma mi sbagliavo.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #12 il: 10 Mag 2010, 10:17:01 »
è una buona idea, ma due cose:

1. non sei all'interno di joomla: con tale locuzione si intende all'interno del framework, non solo della cartella.

2. manca il codice di selezione del db:
mysql_select_db('nomeDB');

3. manca il codice di esecuzione della query: mysql_query($sql) ;

mi sa che ti conviene rileggere un po' di documentazione  ;)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #13 il: 10 Mag 2010, 19:31:44 »
Ho studiato un po e sono arrivato a questo
<?php

$link = mysql_connect('***', '***', '***');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}


echo 'Connected successfully';
mysql_select_db('***');
$file = "/web/htdocs/www.pippo.it/home/prova.csv";
$command = "(LOAD DATA INFILE ".$file."
INTO TABLE prova
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n')";
$result =  mysql_query($command) or die(  mysql_error() );
?>
ma evidentemente non ho studiato abbastanza infatti adesso ricevo:
Connected successfullyYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LOAD DATA INFILE /web/htdocs/www.pippo.it/home/prova.csv INTO TABLE prova' at line 1
 :-[

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #14 il: 10 Mag 2010, 20:35:40 »
la parentesi è inutile, ma manca il delimitatore del testo per il nome file:

$command = "LOAD DATA INFILE '".$file."' INTO TABLE prova FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";

o, più leggibile:

$command = "LOAD DATA INFILE '{$file}' INTO TABLE prova FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'";

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #15 il: 10 Mag 2010, 21:33:24 »
Vedo la luce :)
ora però ho un problema, penso, di accessi
Access denied for user '***'@'%' (using password: YES)
 :o
forse devo modificare qualche permesso delle mie cartelle?!

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #16 il: 11 Mag 2010, 07:22:33 »
 >:( >:(
io strozzerei volentieri quelli che vanno in giro a dire, per partito preso e senza alcuna conoscenza sistemistica, che per far funzionare i programmi php bisogna cambiare i permessi alle cartelle: ecco i risultati.

@all
se non siete sistemisti evitate di dare consigli da sistemisti! grazie.

@maxtemp
no maxtemp, quello è un messaggio di mysql: significa che le credenziali che stai usando per collegarti al server non sono accettate, verifica i parametri in mysql_connect.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #17 il: 11 Mag 2010, 08:39:57 »
Scusa mmleoni ma nel mio script avevo anche il controllo di connessione. Comunque ho ricontrollato i dati di accesso ma sono esatti.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #18 il: 11 Mag 2010, 09:04:14 »
ricorda che selezioni il db dopo la connessione (e qui non effetti nessun controllo di errore), non basta che l'utente possa collegarsi al server è anche necessario che abbia i permessi sul db e sulla tabella sui quali intende operare, altrimenti avrai l'errore in questione.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxtemp

  • Nuovo arrivato
  • *
  • Post: 41
  • Sesso: Maschio
    • Mostra profilo
Re:Caricare Csv in database Mysql di Joomla
« Risposta #19 il: 11 Mag 2010, 12:46:52 »
Navigando su internet ho trovato altre persone con questo problema legato ad i database di una notissima società (non so se si possa fare il nome), e ad i permessi di amministratorte che non ho. Forse il LOAD DATA INFILE non è utilizzabile per il mio scopo.

 



Web Design Bolzano Kreatif