Doppelte Einträge löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alte eintrag
anweisung
beitrag
counter
datensatz
effekt
eintrag
gel
insert
irgend
kauderwelsch
pack
set
skript
sperren
tabelle
terror
update
vorkommen
zeile
-
MHH ich hab nochma ein Prob, aber wollte daf?r eigentlich kein eigenes Thread aufmachen... Aber irgend jemand meinte dann doch das ich ruhig ein neues thread machen soll. also mach ich halt eins ;) Mein Prob kann ich in einem Satz verpacken.
Ich will doppelte eintr?ge (spezieller -> doppelte IP's) aus meiner DB L?SCHEN!
Ich bin dankbar f?r jeden l?sungsansatz. aber bitte schreibt mir nich seiten langen code. ich denkt das man das eigentlich in eine SQL-Anweisung packen kann. aber ich habs so nich hinbekommen. nat?rlich kann ich auch das prob auch mit mit ein P/paar schleifen umgehn, aber 1 anweisung w?r mich echt lieber!
DANKESCH???
Beitrag ge?ndert am 24.10 12:40 von terror-state -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
was Steht denn in der tabelle???
Ist das ein forum, oder ein news-system oder ne shoutbox oder was???
PS: ich war es der dir gesagt hat, dass du ein neues thema machen kannst... -
Also darf jede IP nur einmal in der Tabelle vorkommen?
DELETE FROM tabelle WHERE ip = '[IP]'
so geht es
schon mal nicht schlecht... er nimmt die anweisung an und f?hrt sie aus, aber es hat keinen effekt! mhh ich skizzier einfach mal meine tabelle:
lastaction || ip || counter
1098682734 || 127.0.1 || 6120
1098593458 || 217.232.54.110 || 6120
1098682734 || 127.0.1 || 6120
eigentlich is das alles ein schlecht programmierter besucherz?hler mit ip-sperre.... ich hab ein skript das ?berpr?ft ob lastaction schon l?nger als 300 sec zur?ckliegt
-> wenn das der fall is wird der eintrag gel?scht
-> wenn das NICHT der fall ist wird lastaction durch den neuen wert ersetzt
ich war bis jetz zu faul das besser zu machen.
jederfall m?sste es der therorie nach alles funktioniern, allerdings wird, wenn das skript schnell, mehrfach hintereinander aufgerufen wird der alte eintrag nicht mehr gel?scht oder ge?ndert, sondern es wird einfach eine neue zeile eingef?gt. und damit is der counter verf?lscht.
ich hoffe ihr k?nnt aus meinem kauderwelsch irgendwelche brauchbaren infos entnehmen... ;)
Beitrag ge?ndert am 25.10 07:49 von terror-state -
Pr?fe doch einfach schon beim Eintragen, ob bereits ein Eintrag existiert. Ansonsten k?nntest du es so machen:
<?php
$query = mysql_query("SELECT * FROM tabelle");
while($eintrag = mysql_fetch_objectg($query)){
$query = mysql_query("DELETE FROM tabelle WHERE ip = $eintrag->ip");
}
?>
Jeder online-counter funktioniert so. Auch meiner L?scht alle, wo UNIX_TIMESTAMP()-lastaction>=300 na okay bei mir sind es 600.
Beitrag ge?ndert am 25.10 08:37 von lan -
eben mach doch beim eintragen des datensatzes erstmal ein
$currentIP = $_SERVER['REMOTE_ADDR']; $sql = "UPDATE Deine_Tabelle SET lastaction = time() where IP = $currentIP;"; //... $sql ausf?hren $rows = int mysql_affected_rows (); if ($rows == 0) { $sql = "insert into Deine_Tabelle VALUES (time(), $currentIP , $counter);"; //... $sql ausf?hren }
musste halt noch was anpassen, aber so d?rftest du keine doppelten eintr?ge kriegen
Beitrag ge?ndert am 26.10 09:36 von 2mas -
eben mach doch beim eintragen des datensatzes erstmal ein
$currentIP = $_SERVER['REMOTE_ADDR']; $sql = "UPDATE Deine_Tabelle SET lastaction = time() where IP = $currentIP;"; //... $sql ausf?hren $rows = int mysql_affected_rows (); if ($rows == 0) { $sql = "insert into Deine_Tabelle VALUES (time(), $currentIP , $counter);"; //... $sql ausf?hren }
musste halt noch was anpassen, aber so d?rftest du keine doppelten eintr?ge kriegen
Beitrag ge?ndert am 26.10 09:36 von 2mas
das is doch genau das was ich hab... in etwa! und es klappt auch alles wunderbar. soweit... wenn man das skrip allerding schnell merhfach aufruft ?berschreibt der die existierenden eintr?ge nich mehr sondern f?gt einfach einen neuen ein -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage