Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    copiare dati da tabella a tabella

    ho già fatto qualche ricerca ma non trovo soluzione.

    devo inserire in un record il valore presente nel record di un'altra tabella.

    bisogna per forza fare prima select e poi udpate o esiste un sistema più elegante ?

    grazie.
    Errare humanum est, perseverare ovest

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    update tab_origine,tab_destinazione
    set tab_destinazione.campo1 = tab_origine.campo1,
    tab_destinazione.campo2 = tab_origine.campo2
    where tab_origine.id = tab_destinazione.id

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    ok, grazie.

    e se volessi farlo durante un insert ? ossia, quando creo un record vorrei inserire in un campo il valore contenuto nel campo di un'altra tabella.
    Errare humanum est, perseverare ovest

  4. #4

  5. #5
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    azz. non lo avevo mai visto.

    però questo finchè mi limito a copiare i dati dall'altra tabelle, se nell'insert dovessi contemporaneamente inserire anche dei valori presenti in alcune variabili?
    la query è questa:
    codice:
    $query = "
    INSERT INTO corsi (
    nome_corso,
    id_categoria_corso
    ) VALUES (
    '".$nuovo_elemento."',
    '".$id_categoria_corso."'
    )
    ";
    e poi dovrei aggiungere al campo testo_iscrizione_corso il valore contenuto nell'omonimo campo della tabella corsi_messaggi :master:
    Errare humanum est, perseverare ovest

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Originariamente inviato da carlo2002
    azz. non lo avevo mai visto.

    però questo finchè mi limito a copiare i dati dall'altra tabelle, se nell'insert dovessi contemporaneamente inserire anche dei valori presenti in alcune variabili?
    la query è questa:
    codice:
    $query = "
    INSERT INTO corsi (
    nome_corso,
    id_categoria_corso
    ) VALUES (
    '".$nuovo_elemento."',
    '".$id_categoria_corso."'
    )
    ";
    e poi dovrei aggiungere al campo testo_iscrizione_corso il valore contenuto nell'omonimo campo della tabella corsi_messaggi :master:
    ora pretendi troppo.
    aspetta piero.mac per vedere se si può fare con un'unica query ma ne dubito.

  7. #7
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    dubito anchio. Grazie

    Errare humanum est, perseverare ovest

  8. #8
    Si puo' fare quasi tutto. Ma prima di fare bisogna capire cosa, e sinceramente dagli esempi non ho capito a sufficienza per dare una risposta.

    come sono le tabelle e quali i campi da copiare e quali da aggiornare?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Allora, ho le seguenti tabelle:

    corsi
    -------------------
    id_corso
    id_categoria
    nome_corso
    testo_iscrizione_corso
    et....

    corsi_messaggi
    ------------------
    id_messaggio_corso
    chiave_messaggio_corso
    testo_messaggio_corso
    et...

    in corsi_messaggi tengo memorizzati dei testi di default come gli avvertimenti se le iscrizioni sono aperte o chiuse, le email automatiche di risposta et.

    ogni volta che inserisco un nuovo corso vorrei inserire anche il messaggio di default, in questo caso in testo_iscrizione_corso, corrispondente ad una specificata chiave_messaggio_corso. preciso che non è una ridondanza in quanto per ogni corso è richiesta l'eventuale personalizzazione dei messaggi

    La query che utilizzo per inserire il nuovo corso, come già indicato, è:
    codice:
    $query = "
    INSERT INTO corsi (
    nome_corso,
    id_categoria_corso
    ) VALUES (
    '".$nuovo_elemento."',
    '".$id_categoria_corso."'
    )
    ";
    Appurato che si può fare con due query, mi rimaneva la curiosità se si poteva risolvere con una sola.
    Errare humanum est, perseverare ovest

  10. #10
    Originariamente inviato da carlo2002
    Appurato che si può fare con due query, mi rimaneva la curiosità se si poteva risolvere con una sola.
    puoi farlo con una sola query se sai pescare l'id relativo nella tabella in cui vai a copiare.

    codice:
    INSERT INTO corsi (
    nome_corso, id_categoria_corso, campo1, campo2, campo3
    SELECT
    '$nuovo_elemento', '$id_categoria_corso', campo1, campo2,  campo3
    from corsi_messaggi
    where chiave_messaggio ??? .... ma qui devi sapere tu quale id devi pescare.
    Non capisco quale e' il campo di relazione tra le due tabelle.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.