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

      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
                          • I
                            ienavr User Attivo • ultima modifica di

                            ottimo...per l'update credo che si possa fare...

                            0 Miglior Risposta Ringrazia Cita Rispondi

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

                              ok...prendiamoci la pausa, la notte porta consiglio!!...ti sono veramente riconoscente, è tutto perfetto!!

                              0 Miglior Risposta Ringrazia Cita Rispondi

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

                                Tutto Ok, questa è la query definitiva provata e funzionante:

                                $query = "INSERT IGNORE INTO weborders_clienti (idCliente,Nome,Cognome,NomeUtente,Password,PI_CF,Telefono,Email,Indirizzo,NCivico,Cap,Citta,Provincia,Societa,Consegna,Pagamento,Fattura,Attivo) SELECT u.id,c.firstname,c.lastname,u.username,u.password,c.cb_picf,c.cb_telefono,u.email,c.cb_indirizzo,c.cb_numerocivico,c.cb_cap,c.cb_citta,c.cb_provincia,c.cb_societa,c.cb_consegna,c.cb_pagamenti,c.cb_fattura,c.confirmed FROM weborders_users AS u INNER JOIN weborders_comprofiler AS c ON u.id = c.id WHERE u.id!=' '";

                                ...se abbiamo tempo e soluzione per fare l'UPDATE come dicevamo diventerebbe perfetta!!

                                Una cosa volevo chidere: la lettera u e la lettera **c **come sono saltate fuori?

                                0 Miglior Risposta Ringrazia Cita Rispondi

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

                                  Sono venute fuori da questo pezzo qui:

                                  FROM weborders_users AS u INNER JOIN weborders_comprofiler AS c

                                  AS significa ALIAS...ossia scrivendo weborder_users AS u io assegno un nome alternativo (in questo caso u) a weborder_users. Così facendo posso scrivere in modo più comodo e leggibile la query.

                                  Avrei anche potuto non usare l'alias, ma in tal caso mi sarei ritrovato a scrivere:

                                  $query = "INSERT IGNORE INTO weborders_clienti (idCliente,Nome,Cognome,NomeUtente,Password,PI_CF, Telefono,Email,Indirizzo,NCivico,Cap,Citta,Provinc ia,Societa,Consegna,Pagamento,Fattura,Attivo) SELECT weborder_users.id,weborder_comprofiler.firstname,weborder_comprofiler.lastname,weborder_users.username,weborder_users.password.....

                                  capisci che è scomodo e poco chiaro

                                  0 Miglior Risposta Ringrazia Cita Rispondi

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

                                    direi che con MSYQL ci giochi a PALLONE!
                                    ...mi basterebbe 1/4 dei tuoi PALLEGGI!!!

                                    0 Miglior Risposta Ringrazia Cita Rispondi

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

                                      Avrei trovato qualcosa quì

                                      http://guide.dada.net/database/interventi/2001/05/45041.shtml

                                      ...ma non riesco!

                                      sto facendo una prova con questo...ma ovviamente non funziona!

                                      $query = "UPDATE weborders_clienti SET Email = SELECT email FROM weborders_users WHERE id!=' '";

                                      0 Miglior Risposta Ringrazia Cita Rispondi

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

                                        $query = "UPDATE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ')";

                                        così è già più corretta ma devi anche dirgli dove fare l'update però

                                        se vuoi fare l'update su tutte le righe usa REPLACE

                                        0 Miglior Risposta Ringrazia Cita Rispondi

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

                                          infatti l'errore che mi torna è questo:

                                          UPDATE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ')Subquery returns more than 1 row

                                          stesso errore con REPLACE

                                          REPLACE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ')Subquery returns more than 1 row

                                          0 Miglior Risposta Ringrazia Cita Rispondi

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

                                            perchè devi aggiungere un WHERE esterno:

                                            REPLACE weborders_clienti SET Email = (SELECT email FROM weborders_users WHERE id!=' ') WHERE id != ' '

                                            però ti serve anche un'altra condizione di corrispondenza affinchè la query sia eseguita con criterio e non sovrascriva valori sballati

                                            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