• User Newbie

    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.


  • Consiglio Direttivo

    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');


  • User Newbie

    @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,genere

    Il 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!!!!


  • Consiglio Direttivo

    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?:?


  • User Newbie

    @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!!


  • Consiglio Direttivo

    @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 carina 😉

    Sam 😄


  • User Newbie

    @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!


  • Consiglio Direttivo

    @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 😄


  • User Attivo

    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