Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Copia tabella su altra tabella
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • I
      ienavr User Attivo • ultima modifica di

      UNIQUE KEY NomeUtente (NomeUtente) significa che nella tabella non ci possono essere due utenti con lo stesso nome (anche se gli altri campi sono diversi). Nella tabella originale i nomi sono tutti distinti?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • P
        peterminnow User Attivo • ultima modifica di

        la tabella weborders_users dove devo prendere i dati è per la cronaca la tabella di registrazione di Joomla:

        -- Struttura della tabella weborders_users

        CREATE TABLE weborders_users (
        id int(11) NOT NULL auto_increment,
        name varchar(50) NOT NULL default '',
        username varchar(25) NOT NULL default '',
        email varchar(100) NOT NULL,
        password varchar(100) NOT NULL default '',
        usertype varchar(25) NOT NULL default '',
        block tinyint(4) NOT NULL default '0',
        sendEmail tinyint(4) default '0',
        gid tinyint(3) unsigned NOT NULL default '1',
        registerDate datetime NOT NULL default '0000-00-00 00:00:00',
        lastvisitDate datetime NOT NULL default '0000-00-00 00:00:00',
        activation varchar(100) NOT NULL default '',
        params text NOT NULL,
        PRIMARY KEY (id),
        KEY usertype (usertype),
        KEY idx_name (name)
        ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=190 ;

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • I
          ienavr User Attivo • ultima modifica di

          nella tabella weborders_users ci possono essere 2 utenti con lo stesso username? scusa la domanda un po' idiota...

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • P
            peterminnow User Attivo • ultima modifica di

            ok! sembra che fino a qui ci siamo:

            $query = "INSERT INTO weborders_clienti (Nome,NomeUtente,Email,Password) SELECT name,username,email,password FROM weborders_users WHERE id!=' '";

            ora se io devo prendere qualche altro dato tipo "citta" "telefono" ecc. da anche un'altra tabella, quindi oltre a "weborders_users" anche da "weborders_comprofiler" come dovrei inserirla nella query?

            Un'altro piccolo problema è quello di non riscrivere dati gia esistenti!!!!!

            ciao e sempre grazie tantissimo da Peter

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • I
              ienavr User Attivo • ultima modifica di

              scusa ma come hai risolto il problema di prima?

              ad ogni modo ora devi usare un join...

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • P
                peterminnow User Attivo • ultima modifica di

                scusa ma credo che non ho inviato il post ...cmq dicevo di aver eliminato sul DB la chiave UNIQUE KEY NomeUtente (NomeUtente)

                ora cmq il primo passo è quello di non riscrivere i dati due volte!

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • I
                  ienavr User Attivo • ultima modifica di

                  non garantisco perchè non ho potuto testare...però è un tentativo...INSERT INTO weborders_clienti
                  (Nome,NomeUtente,Email,Password)
                  SELECT u.name,u.username,u.email,u.password
                  FROM weborders_users AS u WHERE u.id!='' AND u.username
                  IN ( SELECT DISTINCT username FROM weborders_users )

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • P
                    peterminnow User Attivo • ultima modifica di

                    No nulla!...li ripete come prima

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • P
                      peterminnow User Attivo • ultima modifica di

                      mi chiedevo se invece si potrebbe inserire sotto un'altra query che eliminasse i dati doppi nella cartella di destinazione "weborders_clienti"

                      inoltre ho trovato questo:

                        Oltre alla INSERT, MySQL offre l'istruzione **REPLACE**, che       è un'estensione allo standard SQL e che consente di sostituire le righe       preesistenti con le righe inserite qualora si verifichi una situazione di       chiave doppia. In pratica, usando REPLACE, qualora non sia possibile       inserire una riga perchè una PRIMARY KEY o un indice UNIQUE esistono già       sulla tabella, MySQL cancella la riga vecchia ed inserisce la nuova.       Questo comportamento è opposto a quello di INSERT IGNORE, con il quale è       la nuova riga ad essere scartata.
                      
                                  Per effettuare una REPLACE dovremo avere i permessi di INSERT e DELETE;       le sintassi sono pressochè identiche a quelle della INSERT; vediamole:
                      
                      
                              REPLACE [LOW_PRIORITY | DELAYED]
                        [INTO] *nome_tabella* [(*nome_colonna*,...)]
                        VALUES ({*espressione* | DEFAULT},...),(...),...
                        **oppure**
                        REPLACE [LOW_PRIORITY | DELAYED]
                        [INTO] *nome_tabella*
                        SET *nome_colonna*={*espressione* | DEFAULT}, ...
                        **oppure**
                        REPLACE [LOW_PRIORITY | DELAYED]
                        [INTO] *nome_tabella* [(*nome_colonna*,...)]
                        SELECT ...
                      

                      fonte: http://database.html.it/guide/lezione/2448/inserimento-dei-dati-nelle-tabelle/

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • I
                        ienavr User Attivo • ultima modifica di

                        forse allora ti conveniva tenere la chiave unique su username ed utilizzare "insert ignore" invece di "insert"

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • P
                          peterminnow User Attivo • ultima modifica di

                          Ok ora provo

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • P
                            peterminnow User Attivo • ultima modifica di

                            @peterminnow said:

                            Ok ora provo
                            è tutto ok con questa:

                            $query = "INSERT IGNORE INTO weborders_clienti (idCliente,Nome,NomeUtente,Email,Password) SELECT id,name,username,email,password FROM weborders_users WHERE id!=' '";

                            ora come ultimo problema come dicevo prima è prendere qualche dato anche da un'altra tabella "weborders_comprofiler" da inserire sempre nella tabella "weborders_clienti"

                            oltre a rigraziarti davvero tantissimo, vorrei darti ovviamente, dopo tanto lavoro, il motivo per il quale mi serve di replicare alcuni dati di _users e _comprofiler in _clienti, il quale è che quella tabella viene letta da un software (chiuso) non modificabile!

                            ciao..nel frattempo continuo a trovare soluzione per quanto sopra......ma se hai tempo sicuramente la soluzione se tu!

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • I
                              ienavr User Attivo • ultima modifica di

                              se mi dici qual è la chiave che accomuna i campi delle due tabelle ti scrivo il codice

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • P
                                peterminnow User Attivo • ultima modifica di

                                La tabella weborders_clienti

                                Nome,Cognome,NomeUtente,Password,PI_CF,Telefono,Email,Indirizzo,NCivico,Cap,Citta,Provincia,Societa,Consegna,Pagamento,Fattura,Attivo

                                La tabella weborders_users

                                name,username,email,block

                                La tabella weborders_comprofiler

                                lastname, firstname,cb_picf,cb_telefono,cb_indirizzo,cb_cap,cb_citta,cb_provincia,cd_societa,cb_fattura,cb_consegna,cb_pagamenti

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • I
                                  ienavr User Attivo • ultima modifica di

                                  ci deve essere un campo comune alle 2 tabelle cmprofiler e users per poter fare un join...cioè un campo che identifichi univocamente uno stesso utente (ad esempio) in entrambe le tabelle

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • P
                                    peterminnow User Attivo • ultima modifica di

                                    si hai ragione la tabella "weborders_users" ha un id con stessa numerazione dell'**id **nella tabella "weborders_comprofiler"
                                    inoltre questa ultima tabella ha anche un campo di nome **user_id **che riporta la stessa nemerazione dei precedenti **id
                                    **a cosa potrebbe servire a Jooomla questo non lo so!

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • I
                                      ienavr User Attivo • ultima modifica di

                                      se ho capito bene ti serve una cosa del genere:

                                      $query = "INSERT IGNORE INTO weborders_clienti (idCliente,Nome,NomeUtente,Email,Password,Indirizzo) SELECT u.id,name,u.username,u.email,u.password,c.cb_indirizzo FROM weborders_users AS u INNER JOIN weborders_comprofiler AS c ON u.id = c.id WHERE u.id!=' '";

                                      questa è la struttura e credo vada bene...poi la devi personalizzare chiaramente

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • P
                                        peterminnow User Attivo • ultima modifica di

                                        ora provo...a costo di stare qui fino a domani mattina!!!

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • P
                                          peterminnow User Attivo • ultima modifica di

                                          allora non ci sono errori....ma cio che si trova su weborders_users viene riportaro correttamente come prima, mentre ad esempio l'indirizzo che si trova in weborders_comprofiler no...l'unica chiamata che si trova qui (idCliente,Nome,NomeUtente,Email,Password,Indirizzo)

                                          annullo tutto okok.....ho sbagliato io sembra ok....ora vado avanti con la personalizzazione

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • P
                                            peterminnow User Attivo • ultima modifica di

                                            TUTTO PERFETTO!!!
                                            forse una cosa che si potrebbe fare è l'aggiornamento dei dati...qualora l'utente (tramita la modifica del profilo in Joomla) modifica i suoi dati

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti