Seite 2 von 3

Verfasst: 08.12.2008 19:52
von Miriam
Shit happens :-P

Konnte ja nicht viel passieren.

Verfasst: 08.12.2008 23:18
von piero
in meinen tests (wollte das ganze noch mit variablen machen :P) hab ichs immerhin geschafft alle beiträge im forum einer bestimmten id zuzuweisen^^
aber für das gibts ja testforen^^

Verfasst: 09.12.2008 10:32
von Knuffel77
Hi Miriam und vielen Dank :grin:
Werde das gleich mal probieren.

Verfasst: 09.12.2008 14:15
von Knuffel77
Hab es im Testforum schon mal ausprobiert und hat geklappt.
Super - vielen Dank.
Aber die alte User ID brauchte ich doch nirgends..

Das einzige "Problem" was ich hab ist

Code: Alles auswählen

PDATE phpbb_topics SET topic_poster = 'neue ID' WHERE topic_first_poster_name = 'alter name';# MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).
(Hab zur Erklärung hier die ID und Name geändert auf das was reinsollte, mit dem Nick bzw. der ID kannst ja so nix anfangen. Im Befehl hatte ich das schon geändert.

Verfasst: 09.12.2008 17:48
von Miriam
Na vllt hat der alte neue User nie einen Thread aufgemacht? :o

Verfasst: 09.12.2008 21:17
von Knuffel77
Der alte neue? Nö, hab das direkt nach der Registrierung ausprobiert bevor was geschrieben wurde. Aber danke - nu sind alle Unklarheiten beseitigt :grin:

Verfasst: 09.12.2008 22:22
von Miriam
Miriam hat geschrieben:Also der User registriert sich neu, meinetwegen mit altem Namen... Aber neuer ID!

Passe die Queries an und führe sie NACH der Registrierung des neuen alten Users aus.
Na also, schön, dass es so gut geklappt hat.

Verfasst: 10.12.2008 12:17
von laszlobela
Hallo Gemeinde,

ich hätte dazu mal eine Frage:

Der alte Username wer Knuffel - die alte poster_id ist ja als Gast nun 1 - die Namen stehen auch noch bei den alten Beiträgen.

Ich hab das Script jetzt wie folgt angepasst:

UPDATE XXX_posts SET poster_id = '230' WHERE post_username ='Knuffel';
UPDATE XXX_posts SET post_username = 'Knuffel' WHERE post_username ='Knuffel';
UPDATE XXX_topics SET topic_poster = '230' WHERE topic_first_poster_name = 'Knuffel';
UPDATE XXX_users SET user_posts = (SELECT COUNT(post_id) FROM XXX_posts WHERE poster_id = '230') WHERE user_id = '230';

Die poster_id ist ja identisch mit der user_id.

Dennoch klappt es nicht - folgende Meldung ist das Ergebnis:

SQL-Befehl: Dokumentation

UPDATE XXX_users SET user_posts = ( SELECT COUNT( post_id )
FROM XXX_posts
WHERE poster_id = '1' )
WHERE user_id = '1'

XXX ist natürlich gegen den echten Präfix getauscht.

wobei COUNT in der Fehlermeldung rot markiert, sprich gehighligtet ist.

Wo mach ich da noch was falsch?

Danke für Eure Hilfe
Lieben Gruss
Bela

Verfasst: 10.12.2008 13:10
von Miriam
Miriam hat geschrieben:...
Es kann sein, dass die Lösung mit dem verschachtelten SELECT in Deiner DB Version nicht funktioniert.
Dann musst Du halt zwei Abfragen machen:
Erst:

Code: Alles auswählen

SELECT COUNT(post_id) FROM XXX_posts WHERE poster_id = '230'
und das Ergebnis einsetzen in:

Code: Alles auswählen

UPDATE XXX_users SET user_posts = 'Ergebnis' WHERE user_id = '230';
*Vorgabe: Dein Tabellenpräfix ist XXX_

Re: Gelöschte USER reaktivieren?

Verfasst: 10.08.2012 13:25
von wolvieh
Ich hab' den Code jetzt verwendet, weil ich versehentlich einen User gelöscht habe.
Allerdings hab' ich vorher den User Guest einfach in den alten Usernamen umbenannt, was natürlich nicht funkioniert hat.

Ich hab' dann gedacht, dass der Code mit 'alter_name' auch nicht funkioniert hat, also hab' ich statt den alten Namen einfach 'Guest' geschrieben

Code: Alles auswählen

UPDATE phpbb_posts SET poster_id = 'neue_ID' WHERE post_username ='alter_name';
UPDATE phpbb_posts SET post_username = '' WHERE post_username ='alter_name';
UPDATE phpbb_topics SET topic_poster = 'neue_id' WHERE topic_first_poster_name = 'alter_name';
UPDATE phpbb_users SET user_posts = (SELECT COUNT(post_id) FROM phpbb_posts WHERE poster_id = 'neue_id') WHERE user_id = 'neue_id';
Jetzt hat aber Guest alle bisherigen Posts vom alten User zugeteilt, die neuen werden dem neuen User mit dem alten Usernamen zugeteilt. Kann ich das irgendwie ändern? Und kann ich dem neuen User die alte UserID geben?