MySQL - Scriptuser finden

rambo

Mitglied
Hi,

ich leite ein Browsergame. Da es ein paar User gibt, die Scripts benutzen, wollte ich mir einen Script basteln, der anhand der Logs mir die Scriptuser findet.

Ich kenne mich zwar mit MySQL aus, habe aber keine idee, wie ich das machen soll...

SELECT user, time AS lasttime FROM userlog WHERE time - lasttime <= 10 LIMIT 1

Nunja, das funktioniert aber nicht...

Code:
#1054 - Unknown column 'lasttime' in 'where clause'
 
Moin,

erstmal zur Theorie:
du kannst kein Ergebnis als Bedingung heranziehen, lasstime wird erst existieren, wenn die Bedingung erfüllt ist.

Zur Praxis:
Was willst du mit dieser Bedingung erreichen?
Da lasstime identisch ist mit time, dürfte die Substraktion immer 0 liefern :eek:
 
Moin SvenMintel,

[OffTopic]
Moin,

Da lasstime identisch ist mit time, dürfte die Substraktion immer 0 liefern :eek:

Deshalb schränkt er doch "alle Sätze" wieder mit "LIMIT 1" ein... ;-)

Er hat doch geschrieben:
Ich kenne mich zwar mit MySQL aus, habe aber keine idee, wie ich das machen soll...
... und ich wette, mindestens eine der beiden Aussagen ist wahr.

Verspricht ein interessanter Thread zu werden, ich hol schon mal Popcorn.

Grüße
Biber
[/OffTopic]
 
Hallo John,

in dem Userlog finden sich alle Aktivitäten der User oder nur die An- bzw. Abmeldungen von der Seite?
Was für Arten von Einträgen gibt es denn?

Wenn alle Aktivitäten geloggt werden, dann könntest Du z.B. die Daten gruppieren (nach Tag oder Stunde).
Aber selbst wenn du dort viele Einträge hast, heisst das nicht unbedingt, das dort ein Script benutzt wurde.

Wobei, wenn du auf Minute gruppierst, wären viele Einträge schon auffällig. Du kannst dir evtl. einen
maximalen Wert von Einträgen, der ohne Script erzeugt wurde, errechnen oder selber testen was da maximal möglich ist.
 
Also, was in der Tabelle Gespeichert wird spielt ja im Großen und Ganze keine Rolle, es ist ja erstmal nur die Zeit (für uns) wichtig. ;)

Ich will auso, wenn es sowas gibt: (Beispiel-Timestamps)
Code:
+-----------+
| timestamp |
+-----------+
| 000000001 |
| 000000003 |
| 000000004 |
| 000000007 |
| [...]     |
+-----------+
Dass mir der User angezeigt wird. Wenn der Abstand dann aber größer als > 4 kommt dann kein Fehler.
 
Ich glaube, das wird ein recht ressourcenraubendes Unternehmen, wenn du es so probierst.
Was einfacher wäre:
Lege eine zusätzliche Spalte an, und bei jedem Query fügst dort die Differnz vom Timestamp des letzten Datensatzes des User zur aktuellen Zeit.

So kannst du später die Datensätze direkt anhand der Differenz selektieren, anstatt womöglich Tausende Datensätze miteinander vergleichen zu müssen(wo mir momentan nicht mal eine sinnvolle Möglichkeit einfällt)
 
Zurück