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. Query errata aiuto!
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      thedarkita ModSenior • ultima modifica di

      Ciao Sara1985,

      prova cosi:
      [php]

      INSERT INTO jos_core_acl_aro (value) VALUES((SELECT id FROM jos_users WHERE 'jos_users.$name' = 'jos_core_acl_aro.$name'))"

      [/php]

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • S
        sara1985 User Attivo • ultima modifica di

        Grazie della risposta 🙂

        Facendo con la tua modifica ottengo questo errore

        Errore di ConnessioneColumn 'value' cannot be null

        😢

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • S
          sara1985 User Attivo • ultima modifica di

          Ho provato anche così

          [php]
          $strsql3 = "INSERT INTO jos_core_acl_aro (value) SELECT id FROM jos_users WHERE name = 'jos_core_acl_aro.$name'";
          [/php]Tutto bene, nessun errore ma il campo "value" in "jos_core_acl_aro" rimane vuoto.
          Ma questa sintassi è errata? Io vorre dirgli

          "SELEZIONE id DA jos_users DOVE "name" (inteso quello in jos_users) è UGUALE al valore di "name" in jos_core_acl_aro

          E' tutto cannato??? ❌x

          Sembra che non trovi alcun campo dove i due "name" sono uguali, in realtà con le query precedenti metto lo stesso valore "name" in tutte e due le tabelle

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            thedarkita ModSenior • ultima modifica di

            Ma questa query:
            [php]
            SELECT id FROM jos_users WHERE 'jos_users.$name' = 'jos_core_acl_aro.$name'
            [/php]

            È sbagliata per cui restituisce null, generando quell'errore.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • S
              sara1985 User Attivo • ultima modifica di

              Mi spieghi in che senso è sbagliata?
              Io vorre estrapolare ild ato dove i due campi "name" delle tue tabelle hanno lo stesso valore... ed è certo che c'è perchè lo immetto io stessa con le query precedenti.. e la riprova l'ho guardando il DB dal phpmyadmin

              Grazie ancora della pazienza

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                thedarkita ModSenior • ultima modifica di

                Togli gli apici, visto che sono nomi di campi allora, e non stringhe.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • S
                  sara1985 User Attivo • ultima modifica di

                  Ho tolto gli apici

                  [PHP]$strsql3 = "INSERT INTO jos_core_acl_aro (value) VALUES((SELECT id FROM jos_users WHERE jos_users.$name = jos_core_acl_aro.$name))";[/PHP]

                  Nel form nel campo "name" metto PINCO e il risultato è:

                  Unknown column 'jos_users.PINCO' in 'where clause' :bho:

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    thedarkita ModSenior • ultima modifica di

                    Dice che nella tabella jos_users non esiste il campo PINCO.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • S
                      sara1985 User Attivo • ultima modifica di

                      @Thedarkita said:

                      Dice che nella tabella jos_users non esiste il campo PINCO.

                      Appunto, certo che non esiste dovrebbe essere il valore che va nel campo "name".. e che se lascio gli apici ci va....
                      Con gli apici lasciati non dà alcun errore solo che non popola il campo "value" di "jos_core_acl_aro" con il valore che dovrebbe prendere dal campo "id" in jos_users.
                      Non capisco

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        thedarkita ModSenior • ultima modifica di

                        Mi sà che stai mischiando troppe cose, allora se devi ottenere l'id di un utente devi fare:

                        
                        SELECT id FROM users WHERE campo_nome = '$nome'
                        
                        

                        Indipendentemente se questa è in una subquery o no.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • S
                          sara1985 User Attivo • ultima modifica di

                          Ti riassumo il problema:

                          devo far in modo che tramite uno script si possa inserire un utente nel CMS Joomla.
                          Scoperti quali sono i campi interessati per far funzionare il tutto (tramite phpmyadmin) ora devo automatizzare la cosa con questo script.

                          I passi sono inserire name, username, email, password ecc ecc in JOS_USERS, quando avviene questo inserimento il DB assegna in automatico al nuovo utente un ID.
                          Devo poi inserire parte degli stessi campi in "JOS_CORE_ACL_ARO".. tra questi campi devo mettere anche l'ID di JOS_USERS che è stato prima generato in automatico.

                          la soluzione che ho pensata è stata:
                          dove il campo "name" è uguale (nelle due distinte tabelle), prendi ID di JOS_USERS e mettilo nel campo VALUE di JOS_CORE_ACL_ARO

                          Inserisce tutto ma il campo VALUE rimane vuoto.

                          Spero di essermi fatta capire...ma è un casino 😞

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • T
                            thedarkita ModSenior • ultima modifica di

                            Ma se utilizzi la funzione mysql_insert_id per recuperare l'id non è meglio considerando ciò che devi fare?

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • S
                              sara1985 User Attivo • ultima modifica di

                              @Thedarkita said:

                              Ma se utilizzi la funzione mysql_insert_id per recuperare l'id non è meglio considerando ciò che devi fare?

                              Se lo sapessi fare sicuramente sì 😞
                              ma te l'ho detto che sono una novellina....

                              Quindi con qiella funzione che non conosco ma che mi sa che è utilissima.. come devo fare?
                              Grazie ancora

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • T
                                thedarkita ModSenior • ultima modifica di

                                [php]
                                $strsql = "INSERT INTO jo_users (name, username, email, password, usertype, gid, params) VALUES ('$name', '$username', '$email', '$password', '$usertype', '$gid', '$params')";
                                $rs=@mysql_query ("$strsql") or die ("Errore di Connessione" .mysql_error());

                                $id_utente = mysql_insert_id();
                                [/php]

                                In $id_utente ha l'id dell'utente.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • S
                                  sara1985 User Attivo • ultima modifica di

                                  @Thedarkita said:

                                  [php]
                                  $strsql = "INSERT INTO jo_users (name, username, email, password, usertype, gid, params) VALUES ('$name', '$username', '$email', '$password', '$usertype', '$gid', '$params')";
                                  $rs=@mysql_query ("$strsql") or die ("Errore di Connessione" .mysql_error());

                                  $id_utente = mysql_insert_id();
                                  [/php]In $id_utente ha l'id dell'utente.

                                  Ihuhhhuuuuu
                                  ci siamo quasi 🙂
                                  Facendo così

                                  [PHP]

                                  $strsql = "INSERT INTO jos_users (name, username, email, password, usertype, gid, params) VALUES ('$name', '$username', '$email', '$password', '$usertype', '$gid', '$params')";
                                  $rs=@mysql_query ("$strsql") or die ("Errore di Connessione" .mysql_error());
                                  $id_utente = mysql_insert_id();

                                  $strsql2 = "INSERT INTO jos_core_acl_aro (name, section_value) VALUES ('$name', '$section_value')";
                                  $rs2=@mysql_query ("$strsql2") or die ("Errore di Connessione" .mysql_error());

                                  $strsql3 = "INSERT INTO jos_core_acl_aro (value) VALUES ('$id_utente')";
                                  $rs3=@mysql_query ("$strsql3") or die ("Errore di Connessione" .mysql_error());

                                  [/PHP]

                                  Succede che... in JOS_USERS è tutto ok come sempre
                                  in JOS_CORE_ACL_ARO crea due record in uno ci sonoi valori (name, section_value) inseriti da $strsql2 e nell'altro c'è il valore (value) inserito da $strsql3.
                                  Devo unirle in un'unica query?

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • T
                                    thedarkita ModSenior • ultima modifica di

                                    Si.

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • S
                                      sara1985 User Attivo • ultima modifica di

                                      @Thedarkita said:

                                      Si.

                                      Scusa la mia perseverante ignoranza...
                                      uso "inner join" ? :mmm:

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • T
                                        thedarkita ModSenior • ultima modifica di

                                        Scusa ma la tabella non è la stessa in quelle 2 query? Per cui devi semplicemente aggiungere un campo nella query di insert.

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • S
                                          sara1985 User Attivo • ultima modifica di

                                          Sì infatti.. poco dopo aver premuto invio mi sono accorta della stupidata,
                                          stessa tabella ma su campi diversi

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • S
                                            sara1985 User Attivo • ultima modifica di

                                            [PHP]
                                            $strsql2 = "INSERT INTO jos_core_acl_aro (name, section_value, value) VALUES ('$name', '$section_value', '$id_utente')";
                                            $rs2=@mysql_query ("$strsql2") or die ("Errore di Connessione" .mysql_error());

                                            [/PHP]

                                            perfetto!
                                            Grazie!!!!!!! 💋
                                            Sei stati gentilissimo.. ora procedo con un'operazione simile su altra tabella.. ma se tanto mi dà tanto sarà uguale 🙂
                                            Grazie ancora, sei stato molto paziente

                                            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