- Home
- Categorie
- Coding e Sistemistica
- PHP
- Inserimento di dati in + tabelle insieme!!
-
Inserimento di dati in + tabelle insieme!!
Ciao a tutti!! Prima di impazzire a tentare di scrivere del codice in php,vorrei sapere se mysql o comunque SQL prevede l'inserimento di dati in piu' tabelle contemporaneamente.
Cioe' qualcosa del tipo:
I**NSERT INTO tabella1,tabella2 VALUES ('values1.1,values1.2, values2.1,values2.2....ect ect)... o simile
**Non credo che si possa fare,pero' e' possibile che mi sia sfuggito qualcosa.:)Ciao e grazie per le eventuali risposte.
-
fare più INSERT?
ovvero:
INSERT INTO table1 (campo1.1, campo2.1) VALUES ('campo1.1', 'campo2.1');
INSERT INTO table2 (campo1.2, campo2.2) VALUES ('campo1.2', 'campo2.2');
-
@Samyorn said:
fare più INSERT?
ovvero:
INSERT INTO table1 (campo1.1, campo2.1) VALUES ('campo1.1', 'campo2.1');
INSERT INTO table2 (campo1.2, campo2.2) VALUES ('campo1.2', 'campo2.2');Grazie per la risposta, puo' essere una soluzione.
Pero' permettimi di illustrarti meglio il caso.
Voglio fare un programma in php e mysql e da mettere sul mio sito per gestire la mia piccola biblioteca.
Concentriamoci sull'inserimento dei dati:
Ho creato 4 tabelle
1 - libro
id_libro,titolo,id_editore,id_autore,id_genere,isbn ( la faccio semplice!! )
2 - autore
id_autore,nome,cognome,info
3 - editore
id_editore,nome_editore
4 - genere_letterario
id_genere,genereIl problema secondo me (ovviamente...sono proprio all'inizio!!)
sta' nella maschera di inserimento dati.
Perche' se faccio una maschera che comprende tutti i campi della varie tabelle,come faccio a smistare gli inserimenti alle rispettive tabelle? Cioe' inserendo il nome dell'autore come faccio a mandarlo nella tabella autore, inserendo il genere come faccio a mandarlo nella tabella genere....e cosi' via.Tutto pero', in una sola volta.Cioe' una volta catalogato un libro ho nelle 4 tabelle le informazioni relative al libro stesso.Se vai su: mentat.altervista.org ti puoi rendere conto della maschera di inserimento come e' fatta. ( E' tutto molto prematuro,quindi non essere troppo duro nel giudizio...:D
Spero di essermi spiegato in modo corretto e chiaro
Ciao e ...buone feste!!!!
-
Beh, semplice direi, per come lo vuoi impostare significa che Autori, Genere ed Editore sono precaricati, indi la form del libro che vai ad inserire non farà altro che raccogliere, magari tramite menu' a tendina, l'Autore, il Genere e l'Editore. Selezionati questi (memorizzando magari in un hidden data l'id di ciascuno) invii alla tabella libro questi dati ed hai fatto......
O forse ho capito male?:?
-
@Samyorn said:
Beh, semplice direi, per come lo vuoi impostare significa che Autori, Genere ed Editore sono precaricati, indi la form del libro che vai ad inserire non farà altro che raccogliere, magari tramite menu' a tendina, l'Autore, il Genere e l'Editore. Selezionati questi (memorizzando magari in un hidden data l'id di ciascuno) invii alla tabella libro questi dati ed hai fatto......
O forse ho capito male?:?
No! Autori,Genere e Editore non sono precaricati.
Ma vengono inseriti solamente una volta in un unico passaggio.Il quell'unico passaggio io devo popolare 4 tabelle contemporaneamente:**Libri,Autore,Genere ed Editore.
**Il problema,secondo me, e' + complesso di quello che sembra.Questo non significa che non ci sia soluzione.Le tabelle all'inizio sono pulite ,non c'e' nulla.Con quel FORM io intendo popolare ,appunto, le 3 tabelle.Tutto quanto questo per evitare di dover prima, popolare la tabella autori,poi la tabella editori poi la tabella genere ed infine la tabella libri.
Spero dio essere stato chiaro.
Ciao!!
-
@mentat said:
No! Autori,Genere e Editore non sono precaricati.
avevo capito male allora@mentat said:
Ma vengono inseriti solamente una volta in un unico passaggio.Il quell'unico passaggio io devo popolare 4 tabelle contemporaneamente:Libri,Autore,Genere ed Editore.
Ok, bene, allora ti serve una pagina con multiform......anche perchè un domani potresti dover inserire un libro, di cui hai già i dati nelle relative tabelle di Editore, Genere e/o Autore, quindi nella form di inserimento libro ti metti i menu' a tendina di cio' che il database già contiene, se non è presente qualche genere/autore/editore, ti fai apparire un bel form (tramite un tasto "+" che magari metti accanto alla tendina relativa) di inserimento di quel che manca, che poi andrai a selezionare, ti riesci facilmente a gestire tutto con un unica pagina. Organizzandoti bene i form ti fai apparire a video solo quel che ti interessa e ti viene una cosa anche carinaSam
-
@Samyorn said:
avevo capito male allora
Ok, bene, allora ti serve una pagina con multiform......anche perchè un domani potresti dover inserire un libro, di cui hai già i dati nelle relative tabelle di Editore, Genere e/o Autore, quindi nella form di inserimento libro ti metti i ..... ti viene una cosa anche carina
Sam
Prima di tutto... Buon Anno!!!!
Allora... sto' prendendo in considerazione la tua prima proposta,cioè il multi-select,ti faro' sapere se incontro difficolta' ad implementarlo. Per quanto riguarda la tua piu' recente proposta...beh!! non sono ancora in grado di scrivere il codice necessario..
Sto' praticamente iniziando adesso a studiare il PHP.
A presto!
-
@mentat said:
...Per quanto riguarda la tua piu' recente proposta...beh!! non sono ancora in grado di scrivere il codice necessario..
Sto' praticamente iniziando adesso a studiare il PHP.
Buon anno anche a te
Non sono un grande esperto di Php-MySql nemmeno io eh
Cmq non ti scoraggiare, non è troppo complicato da fare, se hai bisogno di consigli chiedi pure
Ti aiuto volentieri a svilupparlo, mi servirà come "pratica"Ciau
-
giusto ... degli INSERT consecutivi ma se si devono popolare 3 tabelle relazionate tra loro ... non si può mica lanciare una unica
... $strqry="(1° INSERT INTO)"; mysql_query($strqry); ...prelevo l'ID e proseguo ... $strqry="(2° INSERT INTO)"; mysql_query($strqry); ....
per il semplice motivo che ad ogni INSERT và prelevato il last_insert_id per poi proseguire ... negli INSERT consecutivi ... !!!
Come si fà a gestire gli eventuali errori in tutto questo passaggio ?
thanks all