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.
    • 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
                                          • T
                                            thedarkita ModSenior • ultima modifica di

                                            Figurati. 😉
                                            Alla prossima. 🙂

                                            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