Salta al contenuto
  • Categorie
  • Recenti
  • Tag
  • Popolare
  • Utenti
  • Gruppi
Collassa
Logo del marchio
  1. Home
  2. Amministrazione Joomla!
  3. [RISOLTO] tabelle mysql con prefisso diverso

[RISOLTO] tabelle mysql con prefisso diverso

Pianificato Fissato Bloccato Spostato Amministrazione Joomla!
6 Post 3 Autori 86 Visualizzazioni
  • Da Vecchi a Nuovi
  • Da Nuovi a Vecchi
  • Più Voti
Effettua l'accesso per rispondere
Questa discussione è stata eliminata. Solo gli utenti con diritti di gestione possono vederla.
  • T Non in linea
    T Non in linea
    teopieri
    scritto su ultima modifica di jabba
    #1

    Buon giorno,
    sto creando degli articoli usando il plugin sourcerer, che contengono codice php e mysql per popolare delle tabelle del database e per prelevare poi tali dati in maniera dinamica...
    Il punto è che dalla console mysql ho notato la presenza nel database del sito joomla che sto sviluppando, di tabelle ripetute, cioè che hanno lo stesso nome ma con un prefisso diverso, ed ovviamente risulta popolata solo quella che ha il prefisso impostato nel file di configurazione globale (configuration.php).
    Per esempio la tabella gbgar_content è popolata e contiene gli articoli mentre quella con nome p71ga_content esite con gli stessi campi e attributi ma vuota.
    La tabella gbgar_users ha tutti gli utenti registrati mentre la tabella p71ga_users risulta popolata dal record con username "root"..... perchè?
    Non ci avevo mai fatto caso prima ma forse sono state duplicate con la migrazione da Joomla 3 a joomla 4?
    e cmq ... posso eliminarle? servono?
    Grazie per eventuali suggerimenti.
    Filippo P

    1 Risposta Ultima Risposta
    0
    • pstradaP Non in linea
      pstradaP Non in linea
      pietro strada
      scritto su ultima modifica di
      #2

      Dovrebbero essere quelle del precedente sito, anche se la migrazione non dovrebbe cambiare il prefisso della tabella. Forse hai fatto un'installazione di test (da qui il solo utente root) e poi ti sei dimenticato di cancellare le tabelle non più utili una volta cancellata l'installazione di test. Oppure hai un'altra installazione joomla in una sottocartella? Nel dubbio guarda il tuo fle di configurazione dal cpanel, li è riportato il prefisso

      Puoi trovarmi su: geniodelweb.it

      1 Risposta Ultima Risposta
      1
      • pstradaP Non in linea
        pstradaP Non in linea
        pietro strada
        scritto su ultima modifica di
        #3

        Se tutto ok metti [RISOLTO] nel titolo, grazie

        Puoi trovarmi su: geniodelweb.it

        1 Risposta Ultima Risposta
        0
        • T Non in linea
          T Non in linea
          teopieri
          scritto su ultima modifica di
          #4

          Ok in effetti erano tabelle che si sono create ma erano ininfluenti e anche poco pesanti visto che erano vuote.
          In ogni caso le ho eliminate.... Anche se per far prima ho dovuto usare l'interfaccia pkpmyadmin per poterle spuntare ed eliminare, cioè dico, possibile che da console avrei dovuto elencare tutte le tabelle nel comando .... ? Pensavo che un carattere jolly dopo il prefisso tipo :
          DROP TABLE prefisso_*
          fosse sufficiente.... Esiste un'altra sintassi?
          Giusto per saperlo insomma.
          Filippo P

          1 Risposta Ultima Risposta
          0
          • jabbaJ Non in linea
            jabbaJ Non in linea
            jabba
            scritto su ultima modifica di jabba
            #5

            No, niente caratteri jolly su MySQL purtroppo 🙂
            Se sei in PHP puoi crearti una query che ti setta una lista tipo questa:

            <?php
            use Joomla\CMS\Factory;
            $prefisso = 'prefisso_';
            
            $db = Factory::getContainer()->get('DatabaseDriver');
            
            $query = $db->getQuery(true)
                ->select('GROUP_CONCAT(TABLE_NAME SEPARATOR ", ")')
                ->from('INFORMATION_SCHEMA.TABLES')
                ->where($db->quoteName('TABLE_SCHEMA') . ' = ' . $db->quote($db->getDatabase()))
                ->where($db->quoteName('TABLE_NAME') . ' LIKE ' . $db->quote($prefisso . '%'));
            
            $db->setQuery($query);
            $tablesList = $db->loadResult();
            
            if (!$tablesList) {
                echo "Scrivo qualcosa se non ho trovato tabelle che cominciano con '$prefisso'.";
                return;
            }
            
            // Se invece ho trovato qualcosa allora lancio il DROP TABLE sulla lista
            $dropQuery = "DROP TABLE " . $tablesList;
            $db->setQuery($dropQuery);
            

            Ma forse fai prima a selezionarle una a una e cancellarle da phpmyadmin 😂

            Gianluca Gabella - smanettone IT, webbarolo, Joomler per passione - pixed.it

            1 Risposta Ultima Risposta
            1
            • T Non in linea
              T Non in linea
              teopieri
              scritto su ultima modifica di
              #6

              Esatto, ho pensato ad una sintassi diversa ma che come concetto ci fosse modo di fare una cosa analoga in console mysql ma se devo far un lavoro del genere per una volta che devo eliminare delle tabelle da un db, uso l'interfaccia phpmyadmin e amen.... tanto è stata installata.... vorrà dire che per una volta sarà stata utile anche lei.
              Filippo

              1 Risposta Ultima Risposta
              0

              • Accedi

              • Non hai un account? Registrati

              • Accedi o registrati per effettuare la ricerca.
              Powered by NodeBB Contributors
              • Primo post
                Ultimo post
              0
              • Categorie
              • Recenti
              • Tag
              • Popolare
              • Utenti
              • Gruppi