Beitrag von sebastian (533 Beiträge) am Mittwoch, 25.Juni.2008, 15:32.
dopelte einträge aber nur einen löschen
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 25.Juni.2008, 15:42.
Re: dopelte einträge aber nur einen löschen
ich würds so machen:
if($Email){
push @ok, $_id if $seen{$Email}++; # id abspeichern, wenn die Email schon in %seen drin ist (erst ab dem 2ten auftreten)
}
foreach $Id (@ok){
del "Id==$Id", "master_newsletter_DE_Kopie";
}
so geht sicher gut ;)
Antworten
Beitrag von sebastian (533 Beiträge) am Mittwoch, 25.Juni.2008, 15:56.
Re: Re: dopelte einträge aber nur einen löschen
Antworten
Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 25.Juni.2008, 17:13.
Re: Re: Re: dopelte einträge aber nur einen löschen
Antworten
Beitrag von sebastian (533 Beiträge) am Mittwoch, 25.Juni.2008, 17:34.
Re: Re: Re: Re: dopelte einträge aber nur einen löschen
source frei gegeben.
hier mal der ganze quellcode
<perl>
get "Id==*", "master_newsletter_DE_Kopie" , "system_holen";
while(get_next("system_holen"))
{
#### HIER WERDEN DIE NAMEN ZU AUSSCHLUß HINTERLEGT ###
if ($Email)
{
push @ok, $_id if $seen{$Email}++; # id abspeichern, wenn die Email schon in %seen drin ist (erst ab dem 2ten auftreten)}
}
}
foreach $Id (@ok){
######################## HIER WERDEN DIE DOPPELTEN DATENSÄTZE, EINZELN AUFGELISTET ##############################
out "<table CELLPADDING='2' CELLSPACING='2' ALIGN='CENTER' width='900'>";
out "<tr>";
out "<td ALIGN='LEFT'>";
out "<b>$Email | ID: $_id </b><br>";
out "</td>";
out "</tr></table>";
out "<font color='red'><b>$Email | ID: $_id </b> ==\> wurde gelöscht</font><br>";
########del "Id==$Id", "master_newsletter_DE_Kopie";
}
out "<table CELLPADDING='2' CELLSPACING='2' ALIGN='CENTER' width='900'>";
out "<tr><td ALIGN='RIGHT' NOWRAP><a name='anfang' href='#anfang'>nach oben</a><hr></td></tr>";
out "</table>";
</perl>
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 25.Juni.2008, 19:40.
Re: Re: Re: Re: Re: dopelte einträge aber nur einen löschen
Antworten
Beitrag von sebastian (533 Beiträge) am Donnerstag, 26.Juni.2008, 09:18.
Re: Re: Re: Re: Re: Re: dopelte einträge aber nur einen löschen
guten morgen sander,
irgendwie drehe ich mich gerade im kreis.
habe jetzt folgendes:
while(get_next .....
if ($Email)
{
push @ok, $Id if $seen{$Email}++; # id abspeichern, wenn die Email schon in %seen drin ist (erst ab dem 2ten auftreten)}
}
foreach $Id (@ok){
out "<b>$Email | ID: $Id </b><br>"; <== da werden die Id durchgezählt, sprich, er fängt mit der untersten Id 24499 an und zählt bis ID 24671 durch und die werden auch angeziegt. sind aber nicht die Ids, der doppelten datensätze.
out "<font color='blue'><b>$Email | _ID: $_id </b></font><br>"; <== da wird immer die Id 22384, die erste Id in der datenbank angezeigt.
das mit dem löschen funktioniert auch noch nicht so, er löscht immer nur den ersten doppelten, aber nicht alle doppelten.
anzuschauen unter: http://de3.unifit-daten.de/cgi-bin/baseportal.pl?htx=/unifit-daten.de/d3_newsletter/dopplete_finden
wenn ich meine ersten versuch nehmen, werden wenigstens die richtigen datensätze angezeigt.
http://de3.unifit-daten.de/cgi-bin/baseportal.pl?htx=/unifit-daten.de/d3_newsletter/dopplete_finden_Kopie
aber dann löscht er wieder beide datensätze.
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 26.Juni.2008, 10:57.
Re: Re: Re: Re: Re: Re: Re: dopelte einträge aber nur einen löschen
Antworten
Beitrag von sebastian (533 Beiträge) am Donnerstag, 26.Juni.2008, 11:58.
Re: Re: Re: Re: Re: Re: Re: Re: dopelte einträge aber nur einen löschen
danke, dir sander.
jetzt muss ich mir das mal alles in ruhe anschauen und nachvollziehen. so das ich es auch verstehe.
danke dir auch für die unkomplizierte hilfe, und das du es gleich im template geändert hast.
Antworten
Beitrag von Pouraga (1396 Beiträge) am Mittwoch, 25.Juni.2008, 15:57.
Re: dopelte einträge aber nur einen löschen
Antworten
Beitrag von sebastian (533 Beiträge) am Mittwoch, 25.Juni.2008, 16:19.
Re: Re: dopelte einträge aber nur einen löschen
in der datenbank stehen verschiedene Ids für die datensätze nur bei der ausgabe wird immmer die gleiche id angezeigt.
es handel sich um eine datenbank, mit email anschriften, dort werden immer neue email anschriften eingetragen, sprich es wird auch eine eingetragen die schon drinnen ist und dann möchte ich die, die dann doppelt sind eine davon löschen
Antworten