Back to top

Autore Topic: creare una query per ricostruire gli alias  (Letto 3894 volte)

Offline alexred

  • Fuori controllo
  • *
  • Post: 25672
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
creare una query per ricostruire gli alias
« il: 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:
Codice: [Seleziona]
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.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:creare una query per ricostruire gli alias
« Risposta #1 il: 11 Mar 2010, 10:48:17 »
ciao alexred,

io farei:

Codice: [Seleziona]
UPDATE jos_content SET alias = CONCAT(CAST(id AS CHAR), '-', REPLACE(title, '.', '-')) where alias = '';

od anche

Codice: [Seleziona]
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!!

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline alexred

  • Fuori controllo
  • *
  • Post: 25672
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
Re:creare una query per ricostruire gli alias
« Risposta #2 il: 11 Mar 2010, 10:51:01 »
vado, provo, distruggo e torno...

Offline alexred

  • Fuori controllo
  • *
  • Post: 25672
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
Re:creare una query per ricostruire gli alias
« Risposta #3 il: 11 Mar 2010, 11:00:44 »
Ottimo, grazie per l'aiuto mmleoni

Citazione
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?

mau_develop

  • Visitatore
Re:creare una query per ricostruire gli alias
« Risposta #4 il: 11 Mar 2010, 11:03:29 »
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' :)


Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:creare una query per ricostruire gli alias
« Risposta #5 il: 11 Mar 2010, 11:09:14 »
ma sei proprio distratto  ;D ;D ;D

Codice: [Seleziona]
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


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline alexred

  • Fuori controllo
  • *
  • Post: 25672
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
Re:creare una query per ricostruire gli alias
« Risposta #6 il: 11 Mar 2010, 11:23:22 »
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

mau_develop

  • Visitatore
Re:creare una query per ricostruire gli alias
« Risposta #7 il: 11 Mar 2010, 11:45:41 »
.....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.

Offline alexred

  • Fuori controllo
  • *
  • Post: 25672
  • Sesso: Maschio
  • Esperto in ozio relaxed
    • Mostra profilo
Re:creare una query per ricostruire gli alias
« Risposta #8 il: 11 Mar 2010, 12:38:31 »
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....  :)

 



Web Design Bolzano Kreatif