• User

    leggere excel e lacorarci in php (e mysql?)

    Ciao,
    una domandina,

    ho un database in mysql già creato ma non va bene e devo usare un file excel in modo che posso modificare of line i valori e poi uplodare il file excel con ftp.
    Poi usando php devo lavorarci per renderlo visibile e leggibile all'utente.
    Posso collegare in qualche modo il file excel a mysql?
    Posso utilizare il file excel come database? in che modo?
    Che consiglio mi date?

    grazie


  • Moderatore

    Perché devi modificarlo con excel?

    non puoi farlo direttamente nel db, magari scaricandotelo in locale? 🙂

    :ciauz:


  • User

    Il problema è che il file excel viene modificato spesso...
    è molto più semplice per l'utente finale modificare il file excel e fare l'upload del file piuttosto che modificarsi le voci da un pannello di controllo collegato direttamente al db mysql...
    siccome contiene 25000 voci e le variazioni vengono fatte a blocchi di 500 alla volta...mi sembrava la soluzione più "pratica"....

    ma esiste un sistema?


  • User Attivo

    La via più semplice é salvare excel come csv. A questo punto si può importare tranquillamente in mysql.
    E leggerlo da php é facilissimo (grazie anche alla funzione [url=http://it2.php.net/manual/it/function.fgetcsv.php]fgetcsv


  • Moderatore

    Che si possa fare è evidente. 🙂
    Ci son pure classi ottime per lavorare su file xls.

    Solo che mi sembra errato lavorare su excel e poi importare nel db per operazioni tipiche da db, tutto qua. 🙂

    :ciauz:


  • User

    sono d'accordo con te...ma quando devi aumentare il valore del prezzo per cinquecento voci del 5 percento e di altre mille del 3 percento....credo che con una formula di excel da offline in cinque min è fatto...alla fine fa l'upload del file e si ritrova aggiornato il tutto. Poi è un mio pensiero...io chiedo consiglio su come operare per non trovarmi poi a dover "disfare" tutto il lavoro per implementarlo poi in altro modo....

    🙂 grazie comunque


  • User Attivo

    @Mappex said:

    sono d'accordo con te...ma quando devi aumentare il valore del prezzo per cinquecento voci del 5 percento e di altre mille del 3 percento....credo che con una formula di excel da offline in cinque min è fatto...alla fine fa l'upload del file e si ritrova aggiornato il tutto. Poi è un mio pensiero...io chiedo consiglio su come operare per non trovarmi poi a dover "disfare" tutto il lavoro per implementarlo poi in altro modo....

    🙂 grazie comunque

    un paio di update e hai fatto la stessa cosa.. 😉


  • User

    @kabodie said:

    un paio di update e hai fatto la stessa cosa.. 😉

    In che senso scusa? :mmm:


  • Moderatore

    UPDATE tabella SET colonna = nuovovalore WHERE colonna = qualcosa;

    et voilà 🙂 :ciauz:


  • User Attivo

    @Mappex said:

    In che senso scusa? :mmm:

    mi sembra che tu non abbia mai usato dei database :mmm: :mmm:


  • User

    @kabodie said:

    mi sembra che tu non abbia mai usato dei database :mmm: :mmm:

    sai kabodie, io ho scritto questo post per fare delle inutili polemiche ma solamente per domandare un consiglio, il mio "in che senso" era solamente perchè non capivo di che tipo di upload si stesse parlando! Pensavo a qualcosa del tipo uplodare il file in formato Excel per aggiornare il Db Mysql magari tramite una pagina e che lo potesse fare dirttamente l'utente finale...e siccome non ero sicuro di quello che stessi dicendo ho chiesto "in che senso".

    Io il Db mysql l'ho usato comunque...non sono una cima ma quello che dovevo fare fino ad adesso...magari a forza di :arrabbiato: ma sono sempre riuscito a farlo! Per me questo è l'importante...


  • User

    Ciao a tutti, sto sviluppando anche io un lavoretto per utilizzare l'excel e avrei bisogno di alcuni consigli da coloro che hanno già utilizzato le funzioni associate.
    Sicuramente kabodie ha ragione a dire che fare una update in mysql ci si mette un decimo del tempo, diventa tutto più semplice, veloce e pulito, ma è anche vero che alcuni tipi di utenti non hanno neanche l'idea di cosa sia un db e ragionanano con gli strumenti che hanno sotto mano.
    Sicuramente il più utilizzato per fare i calcoli è excel e per questo motivo stavo pensando di sviluppare una specie di decodificatore.
    Credo che il difficile sia raccogliere il calcolo all'interno di ogni singola cella e interpretarlo poi per il web o per popolare un data base.
    Qualcuno ha già fatto un lavoro del genere o sa la strada migliore da seguire?
    Grazie


  • Super User

    state affrontando il problema in modo un po' strano.

    un programma viene sviluppato da un analista/programmatore e utilizzato da utenti o molto più spesso da utonti (non è un'offesa ma una constatazione purtroppo).

    forse l'1% della popolazione mondiale ha sentito almeno una volta nella sua vita il termine database ma questo non vuol dire che non utilizzi programmi gestionali, siti web o quant'altro.

    Il compito di un analista programmatore è di pensare, progettare e sviluppare un'applicazione (stand alone quindi un eseguibile, o web quindi un sito internet) in grado di semplificare, automatizzare e velocizzare il lavoro agli utenti CHE NON DEVONO SAPERE O CONOSCERE COSA SUCCEDE DIETRO.

    poniamo l'esempio dell'amico Mappex e pensiamo di avere una serie di articoli divisi in categorie e sotto categorie e ogni articolo è legato anche ad un fornitore.

    a questo punto devo fare un incremento di prezzo del 5% a tutti i prodotti della categoria "pippo" e che vengono forniti dal fornitore "pluto".

    in php (se si tratta di un sito web) svilupperò una funzione in grado di aggiornare i prezzi della tabella articoli ma solamente per i record che corrispondono alle caratteristiche richieste (quindi pippo e pluto).

    Purtroppo l'inesperienza e l'ignoranza (nella programmazione e prego di non prenderla come offesa personale!!!) porta ad inventarsi l'acqua calda.
    Il consiglio migliore che si possa dare ad una persona che si affaccia alla programmazione per la prima volta è di provare e sbagliare!!! (l'abbiamo fatto tutti e tutti continuamo a sbagliare).
    MA... è fondamentale studiare ed ovviamente chiedere consiglio sul forum 😉

    quindi, alla fine di questa sbrodolata per la quale mi auguro di cuore nessuno si senta offeso perchè non è veramente mia intenzione, consiglio di leggere approfonditamente la guida di giorgio sul linguaggio php e l'interazione con i database in modo da sapere almeno che cosa è possibile fare, riprogettare le funzioni che prevedono la modifica di un file excel ed il relativo upload dello stesso per portare il tutto ad un'area privata del sito e la modifica dei dati SOLAMENTE con funzioni create dal programmatore, testate e messe in sicurezza.

    Vi presento un altro scenario:

    un utonto (badate bene utonto e non utente) per sbaglio cancella tutti i prezzi degli articoli, non se ne accorge e carica il file che succede? si perde tutto?

    con funzioni preparate dal programmatore, testate e messe in sicurezza in base a diritti di accesso l'utonto NON protrà fare danni o per lo meno si avrà una ragionevole sicurezza.

    il procedimento di modifica su file excel, di carico via ftp, analisi del file ed aggiornamento del db è macchinoso antieconomico e passibile di errori umani (soprattutto) e di rete, praticamente una mina vagante messa sotto il sedere del sito 🙂

    tymba


  • User

    Ciao Tymba...ho letto con interesse il tuo post e in parte sono d'accordo con te...programmatori non si nasce ma si diventa e l'utente finale non deve preoccuparsi di cosa c'è sotto ma deve poter utilizzare ciò che gli serve e il tutto deve funzionare...
    E' quello che in parte devo fare io..rendere disponibile l'upload all'utente finale Naturalmente protetto da area riservata...e deve poter (su sua richiesta) lavorare su un file excel da uplodare poi da solo...

    Sono andato a vedere le guide come da tuo consiglio ma non ho trovato niente che riguardi l'interazione tra excel e mysql o php...potresti postare il link? grazie... 🙂


  • User

    @Tymba said:

    state affrontando il problema in modo un po' strano..............

    Credo che per una tua opinione nessuno si debba sentire offeso, per fortuna siamo in un mondo democratico (internet). Io sono a mio malgrado un programmatore, da diversi anni gestisco e sviluppo linguaggi in sql, sulla padronanza della creazione di query me la cavo più che bene essendo il mio pane quotidiano, naturalmente nelle due righe che ho scritto non si capisce molto del mio progetto.
    Io ho intenzione di creare una struttura come segue:
    database
    foglio di calcolo
    risposta.
    Quindi un database unico per decine, centinai, migliaia di utenti con i dati uguali per tutti.
    La possibilità di crearsi un foglio excel con i calcoli che si desiderano e fare l'upload al sito; una volta letto il file excel memorizzo i campi in una tabella di appoggio utente e infine l'utente stesso può processare l'excel sul data base principale e quindi avere un risultato.
    Ogni utente avrà dei risultati da lui calcolati, ma non modificherà il db principale, al massimo posso fargli creare una tabella personale con i risultati ottenuti per non riprocessarli ogni volta a meno che non cambi il db o che venga uplodato un nuovo foglio di calcolo.
    Volevo fare una pagina autocomponibile inserendo i calcoli con scelta a tendina o qualcosa del genere, ma mi è stato detto che l'utente preferirebbe la soluzione sopra riportata e siccome non ho mai "letto" un file excel uplodato, volevo sapere se era possibile leggere i calcoli all'interno delle celle, magari qualcuno l'ha già fatto avendo ottento risultati più o meno buoni.
    Attendo i vs. post in merito
    🙂


  • User

    Ciao thepooh

    🙂 > una volta letto il file excel memorizzo i campi in una tabella di appoggio utente

    ecco...quello che cerco io...un modo per leggere il file excel, estrapolarne i dati ed inserirli (UPDATE) nella mia tabella mysql...per poi fare tutto il resto mi serva...

    solo che il file excel, deve poterlo inserire il "gestore del sito" (che naturalmente dovrà attenersi a delle regole di impostazione per il file excel in modo che non cambino campi e colonne) da un pannello o pagina di "amministrazione"....

    grazie per le risp 😄


  • User Attivo

    Mi ripeto, ma il modo veramente semplicissimo di leggere un file excel é farlo salvare in formato csv, altrimenti ecco un [url=http://freshmeat.net/projects/phpexcelreader/]excel reader