php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.06.2011, 13:52  
Benutzer
 
Registriert seit: 13.03.2011
Beiträge: 47
PHP-Kenntnisse:
Anfänger
Basskill befindet sich auf einem aufstrebenden Ast
Standard Php Chat loggen.

Hey,
Hab mir grade nen Php Chat gebastelt und nun wollte ich die Daten (Zeit/Name/Ip/Nachricht) loggen. Am besten in einer MySql Datenbank. Dazu folgender Erstell script.
PHP-Code:
<?php 
//Verbindung herstellen
mysql_connect('localhost''root''')
or die (
mysql_error());
//Datenbank auswählen
mysql_select_db('testscripte')
or die (
mysql_error());
//Tabelle erstellen
mysql_query("create table chat(
   Zeit int(11) NOT NULL,
   Name varchar(30) NOT NULL, 
   Ip varchar(15) NOT NULL, 
   Nachricht varchar(255) NOT NULL, 
   PRIMARY KEY (time)
)"
) or die (mysql_error());
echo 
"Erfolgreich erstellt..";
?>
Soweit ist alles in Ordnung..
Wie mache ich jetzt das er die Daten immer loggt.
Basskill ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.06.2011, 13:58  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

1. ) CREATE TABLE IF NOT EXISTS... sonst fliegt dir beim nächsten create nen mysql-error um die ohren
2. ) Chats würde ich persönlich per delayed Insert "mitloggen", wenn überhaupt.

Code:
INSERT DELAYED INTO chatlog ( `time`, `nick`, `ip`, `message`, `channel` )
   VALUES ( '...', '...', '###.###.###.###', '...', '...' )
3. ) Wenn du einen PHP-Chat realisiert hast der Chat-Nachrichten unter verschiedenen Clients austauscht speicherst du die doch sicherlich irgendwo zwischen... das wär schon ein chatlog... Aber darüber will ich jetzt nicht weiter orakeln, da ich den Aufbau deiner Anwendung nicht kenne ( sie scheint aber rein prozeduraler Natur zu sein.. )
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 11.06.2011, 14:00  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Basskill Beitrag anzeigen
Wie mache ich jetzt das er die Daten immer loggt.
In dem du ins Script an der passenden Stelle eine entsprechende INSERT-Query einbaust ...?
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 14.06.2011, 09:49  
Neuer Benutzer
 
Registriert seit: 06.05.2010
Beiträge: 28
PHP-Kenntnisse:
Anfänger
bulb befindet sich auf einem aufstrebenden Ast
Standard

Macht es eigentlich Sinn LOGs in eine Datenbank zu schreiben. Sollte man sowas nicht eher in eine Textdatei schreiben. Eine Datenbank an der ich gerade Arbeite quillt gerade über aufgrund der Log-Einträge.
bulb ist offline   Mit Zitat antworten
Alt 14.06.2011, 11:08  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ob datenbank oder textfile ist relativ. Lass deine Logs halt nicht bis ins unendliche stacken sondern entscheide anhand limits wieviel Log-Lines / Log-Rows bleiben sollen.

MySQL bzw. Textfiles sind nur der Speicherort, bei großen Mengen sind Datenbanken sinnvoller als Textfiles, allein schon was die Handhabung und dessen Performance angeht.

Bei Mysql ethablierst du einfach einen Trigger der dafür sorgt das nicht mehr wie x rows bei einem Insert im table sind. Das selbe prinzip verwendet der syslog-deamon z.b. auf einem Linuxsystem, die Logfiles nehmen auch nur eine bestimmte maximalgröße an, danach werden sie gebackupt ( copied ) und gelöscht ( truncated ).
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 14.06.2011, 11:13  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Ich würde bei so einem simplen Aufbau zumindest keine relationale Datenbank verwenden. Wenn dir Textdateien nicht genügend Möglichkeiten bieten, z.B. bestimmte Bereiche auszuwählen wäre vielleicht MongoDB eine Alternative. Da ist jeder Eintrag ein "Dokument" in JSON-Format und es ist möglich, einen Index über die Zeit anzulegen.
Wenn du unbedingt bei MySQL bleiben willst, solltest du dein Tabellendesign aber mal überdenken. INT ist als Format für die Zeit nicht gut geeignet, nutze lieber TIMESTAMP oder DATETIME. Und als Primary Key willst du sie sicher auch nicht haben, sonst kann nur eine Nachricht pro Sekunde gespeichert werden...
fab ist offline   Mit Zitat antworten
Alt 14.06.2011, 11:17  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.856
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

MongoDB wäre auch eine option, CouchDB eine 2te, aber wie gesagt, das wohin ist absolut relativ beim loggen und bestätigt eher nur die bequemlichkeit des Entwicklers bzw. die nötige Zugriffsflexibilität beim weiterverwenden der Logs.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Chat Entwicklungsproblem Kikatzu JavaScript, Ajax und mehr 11 06.09.2010 20:02
Loggen von Useraktionen, Mandantenfähigkeit - getrennte Datenbanken aeris Software-Design 2 27.08.2010 14:01
Chat aktualisieren Marcwa PHP Tipps 2010 1 20.03.2010 17:07
[Erledigt] Ajax Chat - Browser stürtzt ab BMX800 JavaScript, Ajax und mehr 3 15.02.2010 18:12
Chat PHP-Fortgeschrittene 9 13.02.2010 19:18
Chat programmieren => Was beachten? noBody PHP Tipps 2008 10 01.08.2009 11:30
JavaScript Chat Apfeltyp PHP Tipps 2006 3 28.02.2006 15:46
PHP Chat - was sollte ich beachten? Chr!s PHP Tipps 2005-2 34 23.12.2005 03:02
ein chat der die diskussion abspeichert PHP Tipps 2005-2 3 23.08.2005 22:20
Chat System Chat System Beitragsarchiv 3 21.06.2005 17:07
irc chat ständig offen halten (verboten) kid01 Off-Topic Diskussionen 11 30.05.2005 10:01
PHP live chat PyroMatrix PHP Tipps 2005 13 17.02.2005 02:10
Chat für Phpkit CMS Beitragsarchiv 6 07.02.2005 14:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php chat, chat mitloggen, php chat zwischen benutzer, chat loggen, php chat mit log, ajax chat protokollieren, php mitloggen, phpchat, chat logen, muss man den chat mitloggen lassen, chat loggt, offline chat mitloggen, logge php, chat mitlogen, php chat protokollieren, logging a php chat, php anfänger chat, useraktionen und ip in datenbank schreiben, loggt not, ajax chat tutorial deutsch

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:05 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum