DB cleanen

Begonnen von Ria, 07 März 2004, 21:30:27

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Ria

Hi,

wäre ein Script möglich, welches alle *User löscht die in keiner Benutzergruppe sind?

Der Hintergrund:

es kann sich ja jeder anmelden und dies ist ja erst mal OK. Dann kommen bestimmte User in eine Benutzergruppe.

Nur diese bekommen im Prinzip überhaupt etwas weiteres zu sehen
( weil diese z.B. tatsächliche Mitglieder in einem Club, Verein, wie Ihr wollt, sind).

Was ist mit denen, die sich so aus Spaß, Neugierde, anmelden?

Die will man doch dann aus der DB haben oder nicht.

Gibt es dazu eine Lösung, die besser ist als die von Hand einzeln zu löschen?

Gruss Ria

jubilee


Ria

Hi,
oh das hätte als Zusatzfunktion da vielleicht hereingepaßt, sorry übersehen.

ABER es geht da bei mir  um wirkliche *User zu löschen!

Also **alle** *User, so ein mal per Monat löschen, so das nur die Leute in der ( den) Benutzergruppe stehen bleiben!

Also Leute, die auch in einem real existierenden Verein sind und wo Andere nicht "Hingehören".
Gruss Ria

jubilee

Hallo !
Wenn es Dir nur darum geht, kannst Du diesen kleinen Einzeiler für
phpMyAdmin verwenden :
 
ZitatDELETE FROM `XXXX_users` WHERE ((`user_ingroup`='0') AND(`uname`<>'Anonymous'))
 
Das XXXX bitte dann gegen Deinen Datenbankprefix tauschen
Wobei das ja ziemlich sinnfrei ist. Sobald sich ein User anmeldet wird er ja schon in die Standardusergruppe eingetragen ??!!
Mfg
jubilee
 

[Editiert am 8/3/2004 von jubilee]

Ria

Hi jubilee,
habe:
"SQL-Befehl(e) in Datenbank vkpmaxi ausführen"
 in das Feld das rein:
DELETE FROM `mx_users` WHERE ((`user_ingroup`='0') AND(`uname`<>'Anonymous'))

Auf OK geklickt. Da passiert so überhaupt nichts, jedenfalls nichts, was sich kontrollieren läßt.

Ich finde den Befehl auch nirgendwo mehr, das müßte doch links in der schmalen Spalte auftauchen oder?

Denn im Adminmenü unter Benutzer / Benutzer editieren
da wo man sich die Benutzer anzeigen lassen kann, ist der *User noch da!

Unter mx_users steht er auch noch, in der DB.
Und auch das Login klappt weiterhin.

***Deine Erklärung ist entweder für mich zu spartanisch, oder es tut es nicht?***

Es sollte in jedem Fall schneller laufen als über "Benutzer editieren".

Und ich muß es nach der Aktion auch wieder deaktivieren können, sonst braucht sich ja niemand mehr anmelden, den ich nacher evtl. in die Benutzergruppe verschieben muß.

Gruss Ria

jubilee

Ja, wie ich schon sagte. Es ist sinnfrei weil es keine User gibt, die in keiner Gruppe stecken (nur anonymous hat keine Usergruppe)
Alle anderen werden schon bei der Anmeldung in die Standardusergruppe verschoben. Auch bei Admin-Freischaltung hat der User schon die Standardusergruppe BEVOR der Admin den Account freigegeben hat.
Du kannst nur über das Datum des letzten Besuches feststellen, ob der User nach seiner Anmeldung nochmal eingeloggt war.
(Überigens genauso wie in meinem Accountmanager gelöst ;) )

MfG
jubilee

Bronga

Es geht in wohl darum, di USer zu löschen, die in der Strabndartgrußße, also *user sind. Das sollte möglich sein, ind dem man den WHERE-Teil im Befehl einfach gegen das entsprechende austauscht (also 'usergroup = '*user' oder wie auch immer)

Ria

Hi,
ja dann erkläre ich es halt nochmal, aber mit querlesen geht es wohl nicht (*gr*).

Bronga scheint zu wissen was ich meine, also nochmal:

1. Es registrieren sich irgendwelche Leute, die durch die Registrierung ja automtisch zu *Usern werden.

2. Von diesen Leuten sind aber nur wenige in einem real existierenden Verein.

( der "Verein" ist nicht an breiter Öffentlichkeit interessiert! )

3. Nur letztere werden in eine Benutzergruppe verschoben, also die, die in dem real existierenden "Verein" sind.

4. Die anderen dahergelaufenen (aus Neugierde ) *User sind überflüssig.
Die bekommen auch sowieso nichts zu sehen!!!

5.Da sich diese Neugierigen ja auf Dauer vermehren, will ich die loswerden, ohne die einzeln zu entfernen.
Bisher weiß ich nur wie ich dies per Hand machen kann.

Gruss Ria

PS. das wird was mit 2 vkp und eins davon will ich dicht machen.
Mich wundert das dies so unüblich sein soll.

jubilee

Hallo !
 
Zitatja dann erkläre ich es halt nochmal, aber mit querlesen geht es wohl nicht (*gr*).
Genau richtig.
Wenn Du die User aus einer bestimmten (also hier die Standard-)Benutzergruppe löschen willst, dann änder den Einzeiler doch auf die
Nutzergruppen-ID aus der Du die User gelöscht haben willst
 
ZitatDELETE FROM `XXXX_users` WHERE ((`user_ingroup`='Y') AND(`uname`<>'Anonymous'))
 
XXXX = Prefix
Y = GruppenID

MfG
jubilee

Ria

Hi,
nach dem ich geschnallt habe, was Du mit der ID meinst bzw. wo Du *jetzt*den Begriff Gruppen ID benutzt hast hat es funktioniert :)

Zur Not ganz praktisch so! DANKE :D
Der Königsweg wäre wohl eine Freischaltung der Registrierung vorab per e-mail.
Aber dies wäre dann wohl schon ein *Modul* für einen geschlossenen Club.

Gruss Ria