Speichert man es in einer Datenbank könnte man es natürlich besser lesen
Tabellenaufbau:
Code:
CREATE TABLE pnlog (
id INT(20) NOT NULL AUTO_INCREMENT,
message VARCHAR(200) NOT NULL,
sender_id INT(11) NOT NULL,
receiver_id INT(11) NOT NULL,
time DATETIME NOT NULL,
PRIMARY KEY(id)
);
Insert beim Log:
Code:
INSERT INTO pnlog (message, sender_id, receiver_id, time) VALUES ('NACHRICHT', playerIDSender, playerIDEmpfaenger, CURRENT_TIMESTAMP);
Anzeigen einer Konversation (Angabe von ID zweier Spieler):
Code:
SELECT concat(player.name, ': ', pnlog.message)
FROM pnlog INNER JOIN player
ON pnlog.sender_id = player.id OR pnlog.receiver_id = player.id
WHERE (pnlog.sender_id = SPIELER1 OR pnlog.receiver_id = SPIELER1) AND (pnlog.sender_id = SPIELER2 OR pnlog.receiver_id = SPIELER2)
ORDER BY time ASC;
Trigger für max. 50k Logs:
Code:
delimiter //
CREATE TRIGGER pnlog_remover
AFTER INSERT ON pnlog
BEGIN
DECLARE logCount INT;
SET logCount = (SELECT count(*) FROM pnlog);
IF logCount >= 50000 THEN
DELETE FROM pnlog ORDER BY time ASC LIMIT 1;
END IF;
END;//
delimiter ;
Das würde eine gut lesbare Anzeige ermöglichen.