|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
[PHP]Esportare dati in csv
Ciao a tutti,
premetto che sono un neofita e che ho provato quasi tutti i codici dei post che parlano dell'argomento, ma non riesco. Dovrei da una tabella mysql creare e salvare un file in csv o txt.. Quello che ho capito è che devo usare select into outfile.. ma proprio non riesco a farlo funzionare... ho trovato un script funzionante solo che bisogna aprirlo dal browser e ti fa scegliere dove salvarlo.. io invece ho bisogno di eseguire lo script tramite terminale che in automatico mi crea e salva il file in una cartella sul server Mi aiutate a realizzare questo script? Grazie in anticipo |
![]() |
![]() |
![]() |
#2 | |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Quote:
Se il tuo utente non ha questi permessi devi trovare soluzioni alternative, tipo scrivere un file in formato csv tramite php e salvarlo da qualche parte.
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
il server su cui lavoro è mio..
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Allora controlla che l'utente abbia il permesso (poi magari stai operando da root, e il problema non si pone
![]() Ma ti dà un errore?
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
sto usando questo ho modificato i parametri, ma il file non viene generato..
![]() Codice PHP:
|
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Quote:
Nel caso esista già ti consiglio di cancellarlo e di crearne uno nuovo ogni volta. Così eviti di avere problemi
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
permessi a 777 ok
il file non esiste.. ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Prova ad eseguire solo la query $export
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
stessa cosa non da errori ma il file non viene generato,,,
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
qualcosa si sta "muovendo"
il file me lo crea solo se imposto come cartella /tmp ... penso che ci sarà qualche percorso da modificare in my.cnf ... è possibile che sia così? |
![]() |
![]() |
![]() |
#11 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Non credo, ma se da un'altra parte te lo genera è sicuramente un problema di permessi.
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
va beh.. per ora va bene così.... l'importante è che lo crea...
altra domanda.. posso creare io la struttura del csv? dovrei innanzitutto inserire anche il nome dei campi, poi posso aggiungere dei campi con dei valori predefiniti? la mia tabella adesso ha campo1 campo2 campo3 (con valori diversi) io vorrei nel csv inserire camponuovo1 (con valore true) camponuovo 2 (con valore false) ecc.. |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Una volta creato tramite SELECT INTO OUTFILE hai un normalissimo file di testo, a cui puoi aggiungere quello che vuoi.
Per quanto riguarda l'intestazione ti basta inserire in cima al file una cosa tipo: Codice:
Campo1;Campo2;Campo3;Campo4\n
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
non mi va...
potresti inserirmeli al codice che ho postato prima please? |
![]() |
![]() |
![]() |
#15 | |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Quote:
Codice:
$link = mysql_connect('localhost', 'root', 'pwd'); if (!$link) { die('Could not connect: ' . mysql_error()); } $db = mysql_select_db('dbprova',$link); $export = " SELECT * INTO OUTFILE '/var/www/dati.txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM dati "; mysql_query($export); $file_content=file_get_contents('/var/www/dati.txt'); $file_new="Campo1;Campo2;Campo3;Campo4;\n".$file_content; $file=fopen('/var/www/dati.txt',"w"); fwrite($file,$file_new); fclose($file);
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
|
![]() |
![]() |
![]() |
#16 |
Member
Iscritto dal: Apr 2005
Messaggi: 64
|
Grazie degli aiuti...
mi riesce difficile inserire i campi.. ho preferito modificare la tabella prima di esportarla usando ALTER TABLE grazie ancora di tutto.. dimenticavo.. ancora non ho capito però come faccio ad esportare i campi di intestazione... Ultima modifica di gennysa : 26-08-2011 alle 16:18. Motivo: aggiunta |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:49.