Autor |
Nachricht |
Psych0re
Threadersteller
Dabei seit: 06.01.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 06.01.2006 04:31
Titel PHP --- MYSQL einfügen |
|
|
Hallo,
wollte mal fragen ob man bei einem INSERT auch mit IF NOT EXIST arbeiten kann.
Grund:
Ich möchte einen Besucherzähler mit MYSQL einrichten der Besucher des Heutigen Tages und der Gesamtheit, aber auch bei Interesse, die Besucher an anderen Tagen anzeigt. Diese Realisierung ist bereits schon passiert.
Aber mich stört es das ich bei jedem Klick auf die page eine Abfrage an die Datenbank stellen muss ob es diesen Browser mit der IP schon gibt und wenn ja kein INSERT sonst INSERT. Es würde die Datenbank um ein vielfaches entlasten wenn es eine möglichkeit gäbe, INSERT wenn IP & Browser nicht zu einem eintrag von Heute Passen.
Vorstellung:
Code: |
$sql = "INSERT INTO
besucher (browser,ip,datum)
IF NOT EXIST
values('".$SERVER['HTTP_USER_AGENT']."','".$_SERVER['REMOTE_ADDR']."','NOW')";
mysql_query($sql);
|
vielleicht kennt ihr ja eine Lösung, die dieses Problem ohne der Nachfolgenden Performance verschlingenden source löst.
Das wäre mein Standard:
Code: |
$sql = "SELECT
COUNT(*) as anzahl
FROM
besucher
WHERE
browser = '".$_SERVER['HTTP_USER_AGENT']."' && ip = '".$_SERVER['REMOTE_ADDR']."' && datum = '".date("Y-m-d", strtotime(NOW))."'";
$sql_result = mysql_query($sql);
$eintraege = mysql_fetch_array($sql_result);
if($eintraege['anzahl'] == 0){
$sql_INSERT = "INSERT INTO
besucher(browser,ip,datum)
VALUES
('".$_SERVER['HTTP_USER_AGENT']."','".$_SERVER['REMOTE_ADDR']."','NOW')";
mysql_query($sql);
|
hmm hoffe ihr habt es verstanden......
|
|
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 06.01.2006 04:58
Titel
|
|
|
so in der art mach ichs auch immer. bin ja mal gespannt ob das noch anders geht. aber ich bezweifle das.
|
|
|
|
|
Anzeige
|
|
|
Zeithase
Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht:
|
Verfasst Fr 06.01.2006 10:47
Titel Re: PHP --- MYSQL einfügen |
|
|
Psych0re hat geschrieben: | wollte mal fragen ob man bei einem INSERT auch mit IF NOT EXIST arbeiten kann. |
Antwort A.
Antwort B.
EXISTS geht nur in Verbindung mit SELECT, DROP und CREATE, so weit ich das gelesen habe.
Zuletzt bearbeitet von Zeithase am Fr 06.01.2006 10:53, insgesamt 2-mal bearbeitet
|
|
|
|
|
Psych0re
Threadersteller
Dabei seit: 06.01.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 06.01.2006 23:04
Titel
|
|
|
Danke für eure Antworten.
Ich habe eine andere Lösung gefunden.
In der DB habe ich ein Unique INDEX eingefügt und einfach einen INSERT IGNORE im Script ausgefürt.
Das Unigue INDEX umfasste die zeilen browser, ip, datum. Wenn jetzt ein INSERT ausgführt wird wo browser, ip, datum gleich wie ein anderer eintrag ist wird eine Fehlermeldung ausgegeben deswegen auch das IGNORE.
Eine anmerkung noch dieses würde auch sehr gut für eine Register Script Funkionieren daher man mit mysql_query(bla) or die("Benutzername Existiert bereits") die Fehlermeldung "Benutzername Existiert bereits" ausgeben und manipulieren kann.
Ich danke karmacoder aus dem IRC für diese Hilfestellung.
|
|
|
|
|
|
|
|
Ähnliche Themen |
BLOB in mysql per php oder mysql einfügen
php, mysql active state einfügen
Textdatei zeilenweise in schleife in MySQL-Tabelle einfügen?
HTML code in MySQL Daten bank einfügen macht Probleme
[PHP + mySQL] Kann Fehler in einer mySQL-Phrase nicht finden
[PHP/MySQL] MySQL Error: 1054, falsche Tabelle ausgewählt?
|
|