Joomla.it Forum
Non solo Joomla... => Database => : alexred 11 Mar 2010, 10:29:05
-
Salve gente,
chiedo il vostro aiuto per creare una query da lanciare da phpmyadmin in un database Joomla 1.5
La ragione di questa query è questa, sul sito Joomla.me ho caricato migliaia di contenuti manualmente da dump sul database e mi sono dimenticato di popolare la cella "alias" per ogni articolo :(
Quindi ho il titolo, il contenuto ecc... ma l'alias è vuoto, attivando ora i SEO viene fuori una schifezza con il solo numero ID di quel contenuto.
Vorrei provare a realizzare con il vostro aiuto un query che possa ricostruirmi gli alias. Quindi copiare il contenuto della cella "title" nella rispettiva cella "alias".
C'è qualche buon anima che ha dimestichezza con mysql per aiutarmi in questa query, che forse potrà risultare utile anche ad altri:
inserire nella tabella "jos_content"
per ogni riga, il valore di "title" nella rispettiva cella "alias"
dove "alias" è vuoto
Preferirei evitare di dover scaricare il csv della tabella per effettuare la modifica sul PC e poi ricaricare la tabella.
Il contenuto della cella title è di questo tipo www.nomedominio.ext quindi non contiene spazi vuoti o caratteri speciali, solo il carattere "punto" andrà poi modificato con un "-" o altro.
-
ciao alexred,
io farei:
UPDATE jos_content SET alias = CONCAT(CAST(id AS CHAR), '-', REPLACE(title, '.', '-')) where alias = '';
od anche
UPDATE jos_content SET alias = REPLACE(title, '.', '-') where alias = '';
quest'ultima se il titolo è univoco nel sistema, il che potrebbe anche essere dato che è un url ;)
ciao,
marco
ps: prima back up!!
-
vado, provo, distruggo e torno...
-
Ottimo, grazie per l'aiuto mmleoni
31902 riga/e modificata. ( La query ha impiegato 1.3794 sec )
sembra essere andata benissimo.
C'è un secondo piccolo problemino.... ::)
Ieri ho caricato 11000 nuovi domini Joomla, e qui mi sono ricordato di inserire l'alias, ma l'ho inserito non togliendo il punto.
E' possibile con una nuova query sostituire il punto con il "-" nella colonna dell'alias?
-
umhhh, si... avrei fatto anch'io una cosa del genere...
articolo per articolo -> recupero il titolo -> lo esplodo per spazi ->
pulisco la stringa da apostrofi e stringhe di 2 char, faccio un strtolower() -> ricompongo la stringa inserendo dei - dove prima c'era lo spazio -> faccio la insert nel campo alias
M.
ps. ... i sysadmin che sono bravi fanno tutto usando le funzioni di mysql :) ... io mi incasino sempre così preferisco un po' e un po' :)
-
ma sei proprio distratto ;D ;D ;D
UPDATE jos_content SET alias = REPLACE(alias, '.', '-') WHERE id >= __primoIdDiIeri__;
__primoIdDiIeri__ è il primo id delle nuova serie.
il where probabilmente non serve, dato che non dovrebbero esserci punti nell'alias, ma se non altro velocizza ;)
ovviamente sempre bu prima...
ciao,
marco
-
ha funzionato alla grande!!!
Grazie mille, in pochi secondi si è risolta una cosa che mi sembrava ostica!
Ora su Joomla.me ho i seo attivi!
.....e mi vengono in mente altre possibili applicazioni di questo giochino anche per i meta description e keywords di ogni singola pagina
-
.....e mi vengono in mente altre possibili applicazioni di questo giochino anche per i meta description e keywords di ogni singola pagina
------------------------------------------------------------
... ho cominciato anch'io così, ma stai attento che poi ne senti il bisogno.... e non smetti più.
Ti ritroverai un giorno a fissare una donna e a domandarti che query farle.....
:):):)
M.
-
si, ma se della risposta di mysql si è bene o male certi, in quel caso le variabili da considerare sono molte e sopratutto non c'è la possibilità di ripristinare il backup, se si fa il danno dopo va riparato in altro modo.... :)