Re: Re: Re: Re: Re: Re: dopelte einträge aber nur einen löschen - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    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:

      get . . . 
      

      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

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von sebastian (533 Beiträge) am Mittwoch, 25.Juni.2008, 15:32.
    dopelte einträge aber nur einen löschen

      hallo,

      mit

      if ($Email ne "") 
          {
           push @ok, $Email if ++$nr{$Email}==2;
          }
      }
      foreach $Email (@ok)
      {  Ausgae bla bla
      del "Email==!$Email", "master_newsletter_DE_Kopie";
      }
      

      lasse ich mir doppelt Einträge einer Datenbank anzeigen.

      wenn ich jetzt aber mit

      del "Email==!$Email", "master_newsletter_DE_Kopie";

      löscht er mir beide einträge.

      Alle doppelten angezeigt einträge haben auch die gleich $_id. So dass ich nicht nach der Id gehen kann.

      Wie kann ich es machen, dass nur einer der beiden doppelten einträge gelöscht wird ?

     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

      wenn du dir die anzeigen lassen willst, dann nicht
      out "<b>$Email | ID: $_id </b><br>";
      
      sondern
      out "<b>$Email | ID: $Id </b><br>";

     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:

      get . . . 
      

      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

      >Alle doppelten angezeigt Einträge haben auch die gleich $_id. So dass ich nicht nach der Id gehen kann.
      


      Deine Datenbank ist defekt, das die selbe Id für verschiedene Einträge existieren kann nur daher kommen, oder durch einen falschen Import.

      Kopieren, Reorganisieren... wenn die doppelten Einträge immer noch existieren mit einen Script in eine andere, leere DB umkopieren statt zu versuchen die vorhandenen zu löschen.

      Mit falsche Id's würde ich mit der Datenbank nicht weiterarbeiten, denn wenn es wie du sagst mehrere sind, läuft da schon etwas verdammt falsch.

     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


     
 Liste der Einträge von 10500 bis 10650:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!