Šta je novo?

MySQL naredba [IPB forum] promena User ID u bazi?

][V][ATRIX™

Čuven
Učlanjen(a)
05.02.2001
Poruke
2,885
Poena
679
Jel zna neko kako da promenim u bazi USER ID u invision forumu? Ovako se menja broj, ali posle na mestu gde je korisnik postovao stoji samo prazno. Moze li preko neke update komande da se update-uju tabele kako bi forum reflektovao promenu User ID-a?
Ovo je kod koji menja korisnika ID 11 na ID 77
Kod:
UPDATE `proba_members` SET `id` = '77',
`avatar_size` = NULL ,
`title` = NULL ,
`email_full` = NULL ,
`warn_level` = NULL ,
`bday_day` = NULL ,
`bday_month` = NULL ,
`bday_year` = NULL ,
`new_msg` = NULL ,
`msg_from_id` = NULL ,
`msg_msg_id` = NULL ,
`msg_total` = NULL ,
`show_popup` = NULL ,
`misc` = NULL ,
`temp_ban` = NULL WHERE `id` = '11' LIMIT 1 ;
 
Poslednja izmena:
Hm, raspitao sam se malo i izgleda IPB nije projektovan tako da bi se menjao UserID... Mada postoji jedno resenje - rucno editovati sve :D
 
Pa pazi, ovim tvojim kodom ne samo što promeniš id usera, već mu pobrišeš i sve podatke iz profila: avatara, title, email, rođendan... Dovoljno je samo
UPDATE `proba_members` SET `id` = '77' WHERE `id` = '11';

E sad, da bi promenio ime, za početak probaj:

UPDATE `proba_members` SET `name` = 'Pera' WHERE `id` = '11'; ili
UPDATE `proba_members` SET `name` = 'Pera' WHERE `name` = 'Žika';

Međutim, bojim se da to neće biti dovoljno pošto se imena pojavljuju u još nekim tabelama, npr. u ibf_forums (ili proba_forums kod tebe) imaš polje last_poster_name, koje bi valjda isto trebalo promeniti? Komanda bi bila:
UPDATE `proba_forums` SET `last_poster_name` = 'Pera' WHERE `last_poster_name` = 'Žika';

Isto se javlja u ibf_moderators, ibf_post, ibf_topics... Što sam pokazuje da je prilično velika komplikacija jer sama baza nije baš najbolje projektovana (logično bi bilo da se u svim tabelama nalazi samo User ID, a ne i njegovo ime).
 
Ups, izvini, pitao si samo za promenu User ID-a, ne i imena? Dakle pored onog prvog update-a probaj i sledeće:
UPDATE proba_posts SET author_id = '77' WHERE author_id = '11';
 
moj savet ti je da ovo izvedes iz dve operacije jedne insert-select i jedne delete
npr.
insert into user (id) values ('77') select * from user where id='11' (ne mogu da se setim kako tacno ide insert-select funkcija),
pa onda
delete from user where id='11'...
ova prica stoji ako ti slucajno ovo sto je predlozio sunrise ne radi, ali ja ne vidim sto to ne bi radilo...
 
Poslednja izmena:
Ma delom sam odustao od ovoga. Nije nista toliko bitno, nego ono... why not ;)

Probacu prvo na localhostu pa ako radi da odradim i u production envoirment-u.

Cuo sam da Inv. Power Board nije predvidjen za menjanje ovakvog tipa, jer je UserID primary key..logicno... I ne treba ga menjati.

MIKIS, pa moze lepo da se promeni Username preko admin panela ;) Anyways, hvala na query-ju, probacu..
Kazem, nije to nista tako bitno, ali nije na odmet znati kako i da li moze da se odradi. ;)

Sto se tice mog upita koji brise sve podatke iz profila, pa tako je kad uradis preko phpMyadmina. On u sustini obrise sve detalje starog usera i zato se nista posle ne vidi (samo prazno). E sad, ako on pobrise sve ovo i stavi da je prazno, hoce li nova update komanda uspeti da azurira ove praznine sa novim userID i adekvatnim podacima? Probacu.. :)
 
Nazad
Vrh Dno