Problema estrabolazione dati da excel in mysql attraverso codice php

virgi

Nuovo Utente
11 Giu 2007
8
0
0
Ciao a tutti, mi sono iscritta da poco! ho un problema che mi perseguita da alcune settimane: :dipser:sto realizzando una applicazione web con PHP(purtroppo la versione 4), mysql e apache. Attraverso un file excel, di cui faccio l'upload nella mia applicazione, devo riuscire a estrabolarne i dati con codice php e inserirli in alcune tabelle che compongono il mio db, fatto con il client mysql Query Browser, fino adesso non ho avuto problemi, le mie tabelle si incrementano con i valori che gli passa il file excel, ma purtroppo attraverso php non rieco a creare le relazioni tra queste tabelle. Es. il mio file excel è composto da:

nome/ufficio
pippo/uff_1
paperino/uff_2
pluto/uff_1

io sono riuscita ha fare l'inserimento di questi valori in due tabelle separate e distinte: la tab "nome" e la tab "ufficio" ma non so alla tab "nome" come associare il valore "id" relativo alla tabella uffficio!!!!Scusatemi se sono stata cosi lunga, sicuramente potevo spegarmi in maniera migliore, ma spero che qualcuno di voi mi possa aver capito. Grazie a tutti e buona serata.
Virgi
 

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Ciao a tutti, mi sono iscritta da poco! ho un problema che mi perseguita da alcune settimane: :dipser:sto realizzando una applicazione web con PHP(purtroppo la versione 4), mysql e apache. Attraverso un file excel, di cui faccio l'upload nella mia applicazione, devo riuscire a estrabolarne i dati con codice php e inserirli in alcune tabelle che compongono il mio db, fatto con il client mysql Query Browser, fino adesso non ho avuto problemi, le mie tabelle si incrementano con i valori che gli passa il file excel, ma purtroppo attraverso php non rieco a creare le relazioni tra queste tabelle. Es. il mio file excel è composto da:

nome/ufficio
pippo/uff_1
paperino/uff_2
pluto/uff_1

io sono riuscita ha fare l'inserimento di questi valori in due tabelle separate e distinte: la tab "nome" e la tab "ufficio" ma non so alla tab "nome" come associare il valore "id" relativo alla tabella uffficio!!!!Scusatemi se sono stata cosi lunga, sicuramente potevo spegarmi in maniera migliore, ma spero che qualcuno di voi mi possa aver capito. Grazie a tutti e buona serata.
Virgi

Premettendo che ignoro l'interazione tra php excel...ma visto che tu riesci tranquillamente a prendere i dati di excel e portarli nel db...non puoi aggiungere 1 colonna in excel id_ufficio, dove ci saranno tutti gli id degli uffici poi copiarli nel DB nella tabella ufficio: campo id_ufficio e nella tabella nome campo id_ufficio_chiave_esterna ?
 

virgi

Nuovo Utente
11 Giu 2007
8
0
0
Ti ringrazio per esserti interessato al mio problema!!Comunque, proprio ieri sera sono riuscita a risolvero, non da sola ma con un aiuto esterno!!però per rispondere alla tua domanda, il fatto è questo, che il file excel viene generato automaticamente da un altro programma, perciò le intestazioni sono fisse, per di più chi mette mano su questo file sono gli utenti finali, che non sanno neanche che cosè un ID, perciò non potrebbero mai aggiungerlo loro, per questo io ho pensato a un upload del file e poi far fare tutto a php!! comunque se ti può interessare ti mando il codice che ho scritto!! ti premetto, che per far parlare excel con php devi scaricarti due librerie da internet al sito:http://sourceforge.net/projects/phpexcelreader/
il download consiste in due file, scritti in php:reader.php e OLE.inc (un file di testo).Chiaramente devi avere una pagina dove fare l'upload, una pagina che elabora il codice, un db mysql e un file excel:
<form enctype="multipart/form-data" action="--URL--" method="POST" name="upload">
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
Cerca il file excel: <input name="userfile" type="file" />
<input type="submit" value="inserisci" />
</form>

e poi la pagina che elabora il file, se ti può interessare:
<? // script per fare l'upload
// imposto il percoso dell'upload il file
$uploaddir = '../excel/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Il file &nbsp;" . $_FILES['userfile']['name'] . "&nbsp;è stato caricato sul Server con successo.";
} else {
echo "L'upload non è riuscito";
}
//fine script upload

// inizio script per far interagire excel e php
//includo la libreria che mi serve per leggere excel
require_once ('../excel/reader.php');
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');

//gli dico dove deve pescare il file
$data->read('../excel/indirizzi.xls');

//imposto la connessione
$conn=mysql_connect("localhost","root","password");

mysql_select_db("nomedb");
//eseguo un ciclo for sul file excel
for ($i = 2; $i <= $data->sheets[0]['numRows']; $i++){
$nome= "" . $data->sheets[0]['cells'][$i][1].""; //nome
$ufficio= "" . $data->sheets[0]['cells'][$i][2] .""; //ufficio
echo $nome;
echo $ufficio;

//faccio una select sullaa tabella ufficio
$query_rsufficio = "SELECT idUfficio FROM ufficio
WHERE ufficio.ufficio='".$ufficio."'";
$rsufficio = mysql_query($query_rsufficio, $conn) or die(mysql_error());
$totalRows_rsufficio = mysql_num_rows($rsufficio);

// faccio degli echo per vedere se funziona
echo "num righe=" . $totalRows_rsufficio;?>
<br><?
//faccio una if per controllare che non vengano inseriti valori uguali nella tab ufficio
if($totalRows_rsufficio==0){
//non esiste nessun ufficio con nome uguale al valore della variaabile ufficio. Quindi inserisco una nuova riga.
$insert="insert into ufficio (ufficio) values('" . $ufficio . "')";
$dati=mysql_query($insert, $conn);
//con questa funzione mi ricavo l'id dell'ufficio
$idufficio=mysql_insert_id();
echo "l'id ufficio è" . $idufficio;
} else {$row_rsufficio = mysql_fetch_assoc($rsufficio);
$idufficio=$row_rsufficio['idUfficio'];
//echo "id dell'uff letto dal db è=" . $idufficio;
}
//dopo aver inserito i valori nella tab ufficio e trovati gli id faccio una insert sulla tab nomi e collego gli id dell'uffucio nella tab nomi, tutto questo dentro il ciclo for
$query="insert into nomi (nome, idufficio) values('" . $nome . "', '" . $idufficio . "')";
$dati=mysql_query($query, $conn);

}
?>
Ciao e grazie ancora:)
Virgi
 

metalgemini

Utente Attivo
14 Apr 2004
745
0
0
Bella sta cosa di excel x gli utenti finali impediti :D beh ci avevo pensato alla soluzione che hai spiegato ma pensavo che i vari id erano relativi ad un solo file e quindi dovevi per forza inserirli nel file excel...se ho capito bene hai tanti file excel e ognuno ha il suo id_ufficio...? o non ho capito nulla? :)
 

virgi

Nuovo Utente
11 Giu 2007
8
0
0
Ciao, per essere più chiara il file file excel sull' ufficio era solo un esempio per farla facile, ma i miei dati riguardano libri con tutti i loro dettagli!sto facendo una applicazione sulle bilioteche digitali, perciò, ci sono varie persone che inseriscono i dati dei loro libri in un software per fare la catalogazione, da questo software si estrae un file excel con tutti i dati, perciò il file excel per ogni persona è uno ma attraverso il codice php deve essere spezzettato quante sono le tabelle che compongono il mio db, per poi poter creare le varie relazioni.Cosi nella mia applicazione, risulterà una tabella dinamica, che si incrementa automaticamente, che farà vedere tutti i libri di quella data persona o ente.
Ciao
:)Virgi
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
Attraverso un file excel, di cui faccio l'upload nella mia applicazione, devo riuscire a estrabolarne i dati con codice php e inserirli in alcune tabelle che compongono il mio db

Ma è da pazzi! Per di più i dati sono inseriti da persone che in Excel porebbero scrivere qualsiasi cosa, quindi vanno impostati controlli a morire!

Dato che ho la sensazione che non sia un compitino universitario ma un lavoro, inizierei ad optare per una soluzione differente col cliente!

Però forse non ho capito: devi aggiuornare un database in funzione della lettura di un file Excel dopo che è stato uploadato? Se si, fin qui ci sei arrivata? Il problema dov'è?
 

virgi

Nuovo Utente
11 Giu 2007
8
0
0
per fortuna il problema l'ho risolto con il codice che ho scritto nella prima risposta, sicuramente dovrò mettere parecchi controlli anche se gli utenti finali fanno parte dell'ente dove lavoro, è una intranet, anzi più che lavoro è uno stage!!, perciò è più facile per me gestire la situazione.
Se ti interessa, io ho messo a disposizione il codice, sicuramente ci possono essere anche modi migliori per risolvere il problema, magari fare tutto attraverso le classi, ma io la programmazione ad oggetti, purtroppo, non la conosco.
Ciao
Virgi
 

lukeonweb

Utente Attivo
5 Mar 2003
5.175
13
38
46
Napoli
www.lucaruggiero.it
per fortuna il problema l'ho risolto con il codice che ho scritto nella prima risposta, sicuramente dovrò mettere parecchi controlli anche se gli utenti finali fanno parte dell'ente dove lavoro, è una intranet, anzi più che lavoro è uno stage!!, perciò è più facile per me gestire la situazione.

Certo, male che vada scappi :D

Se ti interessa, io ho messo a disposizione il codice, sicuramente ci possono essere anche modi migliori per risolvere il problema, magari fare tutto attraverso le classi, ma io la programmazione ad oggetti, purtroppo, non la conosco.
Ciao
Virgi

Grazie :)

In sostanza il problema è risolto?
 

virgi

Nuovo Utente
11 Giu 2007
8
0
0
Si, è risolto, anche se, come ti ho detto, tutto quello che ho fatto era su un file excel di prova con due cose scritte dentro, mentre il vero file che verrà generato sarà un pò più complesso e con più informazioni!! Comunque l'importante è che ho capito l'algoritmo da usare!!:D
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Problema pulsante cerca record su access Database 0
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 1
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 11
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
T problema data 30/11/-1 PHP 0
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Y Problema incolonnamento tabella PHP 7
S problema salvataggio immagini Photoshop 0
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
D problema php mysql PHP 1

Discussioni simili