PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe zu SQL MySQL



SNakeAngel
25.02.2008, 13:03
Hallo Leute,

ich bräuchte einmal dringende hilfe zu den beiden oben genannten dingern....

Ich würd gerne MysQl und SQL auf meiner Domain bzw seite einrichten um einige PHP-Codes zu nutzen

Ich bitte nur um sehr sehr hilfreiche Tutorals oder am besten live support über ICQ

425619369

Ich wäre euch sehr dankbar!

Ist dringend, ich muss das nun mal können *gg*

SNake

Floo
25.02.2008, 13:27
Sag doch einfach WAS du alles brauchst.

SNakeAngel
25.02.2008, 13:39
Würde gerne So einen Allround Counter code in meine Seite einbiden, die auf mysql und sql bassieren^^

welchen allround counter kann ich noch nicht ganz genau sagen, da ich da viele zur auswahl habe

kannst mir helfen, @ Floo, am besten über ICQ ?

Aber hab grad erfahren das mein SQL bzw MYSQL Aktiv sind^^

ripfeecy
25.02.2008, 13:41
hönnt dir helfen wenn du mir sagen würdest was ein allround counter ist...

SNakeAngel
25.02.2008, 14:04
Also es sollte ein Counter sein, der das Anzeigt:

gesamt: XXXXXX
Heute: XXX
gerade online: XX

Uhrzeit + Datum wäre fein, muss aber nicht sein!

ALso hier habe ich einen Php-Counter:

http://neplife.ne.funpic.de/Allroundcounter.rar

Der benötig SQL glaube ich^^

Der Counter den ich hier anbiete würd vollkommen ausreichen :)

Kann Jemand helfen?

Added after 16 minutes:

Jemand da der mir Helfen kann?

:(

JambaRatte
13.03.2008, 16:53
Oha, schon älter, aber ich habe es nicht gesehen!
Es geht relativ einfach:



CREATE TABLE `ipcounter` (
`ipaddress` varchar(15) collate utf8_unicode_ci NOT NULL,
`time` int(10) unsigned NOT NULL,
`exacttime` int(10) unsigned NOT NULL,
UNIQUE KEY `ipaddress_time` (`ipaddress`,`time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Dadurch, dass die IP zusammen mit der zeit einen UNIQUE index bildet, kann gar kein datensatz doppelt vorkommen. Für time sehe ich hier keine stamp vor, sondern einen formatierten string im date-format (http://de.php.net/date).
Also für eine IP sperre von einer stunde: date('YmdH',time());


Wegen des indizies kann man dann natürlich keinen normalen INSERT mehr verwenden. Entweder nutzt man ON DUPLICATE KEY bei einem INSERT oder REPLACE INTO.

REPLACE INTO ipcounter
(
ipaddress,
time,
exacttime
)
VALUES
(
"'.$_SERVER['REMOTE_ADDR'].'",
'.date('YmdH',time()).',
'.time().'
)
Auch, wenn man als client REMOTE_ADDR eigentlich nicht manupulieren kann, sollte man nicht auf nen mysql-escape verzichten!!
Statt der php time() funktion kann man natürlich auch mysql funktionen verwenden.

Also, wie man jetzt auslies, wer wann online war:

Letzter Monat:

SELECT COUNT(*) AS counter FROM ipcounter WHERE time>='.(time()-60*60*24*30).'

Letzte Woche:

SELECT COUNT(*) AS counter FROM ipcounter WHERE time>='.(time()-60*60*24*7).'

Heute:

SELECT COUNT(*) AS counter FROM ipcounter WHERE time>='.(time()-60*60*24*1).'

Gerade online (= letzte10 minuten)
Letzter Monat:

SELECT COUNT(*) AS counter FROM ipcounter WHERE exacttime>='.(time()-60*10).'

Alles ist ungetestet und dient als vorlage!