@olaf - 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 trixi (17 Beiträge) am Mittwoch, 8.Oktober.2003, 22:09.
    @olaf

      hi olaf,

      daß war nicht böse aufgenommen.
      ich wäre wahrscheinlich innerlich explodiert.

      schön, daß es geklappt hat.

      danke
      trixi


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von trixi (17 Beiträge) am Montag, 6.Oktober.2003, 23:38.
    doppelte einträge

      guten abend,

      ich habe eine db mit mailadressen.

      wie kann ich es einfach anstellen, daß doppelte adressen rausfallen?

      z.zt. exportiere ich alles als csv-datei in excel und sortiere dort händisch aus - echt übel.

      trixi

     Antworten

    Beitrag von olaf (59 Beiträge) am Dienstag, 7.Oktober.2003, 15:35. WWW: kleclan.de
    Re: doppelte einträge

      hallo trixi,

      möchtest du alle doppelten oder x-fachen mailadr. löschen? könnte man z.b. so machen:

      get "mail==$mailadr","maildb","del";
      get_next("del");        #ersten gefunden eintrag übergehen, sprich behalten
      while(get_next("del") ){
         del "Id==$Id","maildb";
      }
      

      vielleicht könntest du aber auch vor dem hinzufühgen einer neuen mailadr. abfragen, ob es die schon gibt, evtl. so:

      $mail="";
      get "mail==$mailadr","maildb";
      unless ( $mail ) {
         put ["mail",$mailadr],"maildb";
      }else{
         out "$mailadr gibt's schon, sorry";
      }
      

      ich hoffe ich konnte dir weiterhelfen oder wenigstens einen kleinen tipp geben.

      gruss
      olaf

     Antworten

    Beitrag von trixi (17 Beiträge) am Mittwoch, 8.Oktober.2003, 10:09.
    Re: doppelte einträge

      hallo olaf,

      hab` versucht, deinen tipp umzusetzen.

      hat irgendwie noch einen kleinen fehler.

      beim versuch hat er zwar die erste mail übergangen,
      doch die anderen 900 adressen hat er mir dann gelöscht :-)

      trixi

      --------------------------------
      <perl>
      get "mail==$email","email","del";
      get_next("del"); #ersten gefunden eintrag übergehen, sprich behalten
       
      while(get_next("del") ){
      del "Id==$Id","email";
      }
      </perl>
      
      --------------------------------

     Antworten

    Beitrag von olaf (59 Beiträge) am Mittwoch, 8.Oktober.2003, 16:20. WWW: kleclan.de
    Re: doppelte einträge

      hallo trixi,

      hoffentlich ist das nur bei einer kopie deiner db passiert *hoff*. aber ich habe das so mit einer (test)db bei mir getestet und da hat es gefunzt.

      es hängt davon ab was du in $email stehen hattest. das ist nur eine variable die ich als beispiel gewählt habe. die musst du natürlich deiner "umgebung" anpassen. dort muss die variable stehen, in der du die emailadr hast deren doppelt einträge du löschen möchtest.

      aber ich glaube ich weiss jetzt was du wolltest. du wolltest nicht die doppelten einträge EINER bestimmten mailadr. (in meinem falle die in $mail) sondern ALLE doppelteinträge aus der db löschen.

      eine möglichkeit wäre da:

      <perl>
      get "","maildb","mails";  # alle einträge aus der maildb holen
      

      while(get_next("mails") ){
         out "$mail gefunden<br>";
         get "mail==!$mail","maildb","del";  # hole alle einträge mit ein und der gleichen mailadr
            get_next("del");  # übergehen bzw übersehe des ersten eintrags dieser mail
            while(get_next("del") ){    #alle anderen einträge mit der mailadr löschen
      
               out " lösche $mail ( Id = $Id)<br>";
               del "Id==!$Id","maildb";
             }
      }
      </perl>
      

      das ist sicherlich nicht die effizienteste routine aber ich hab sie getestet und sie löscht alle doppelt einträge in dem feld "mail".

      ich hoffe, das durch mein missverständniss nicht alle deine mailadr. weg sind.

      gruss
      olaf

     Antworten

    Beitrag von trixi (17 Beiträge) am Mittwoch, 8.Oktober.2003, 17:15.
    Re: doppelte einträge

      hi olaf,

      war nur ne kopie_db - zum glück ;-)

      dein perl funktioniert so weit.
      es sucht nur nach der nächsten doppelten adresse und löscht alle doppelten "dieser adresse" raus.
      sind jetzt z.b. von 5 mailadressen 2 oder mehrere einträge drin, dann muß ich beim template 5x aktualisieren klicken, daß alle doppleten gelöscht sind.
      meintest du das mit "nicht die effizienteste routine" oder mache ich vielleicht nochwas falsch.
      die db, wie auch die feldbezeichnung ist "email".

      danke
      trixi


      <perl>
      get "","email","email"; # alle einträge aus der maildb holen
       
      

      while(get_next("email") ){
         out "$email gefunden<br>";
         get "email==!$email","email","del"; # hole alle einträge mit ein und der gleichen mailadr
            get_next("del"); # übergehen bzw übersehe des ersten eintrags dieser mail
            while(get_next("del") ){ #alle anderen einträge mit der mailadr löschen
      
               out " lösche $email ( Id = $Id)<br>";
               del "Id==!$Id","email";
             }
      }
      </perl>
      

     Antworten

    Beitrag von olaf (59 Beiträge) am Mittwoch, 8.Oktober.2003, 17:41. WWW: kleclan.de
    Re: doppelte einträge

      hi trixi,

      mit ineffizient meine ich das zweite get und while.

      das es bei dir nicht klappt, liegt daran, das du beim ersten get und get_next aus dem "mails" ein "email" gemacht hast. bp kommt da leicht durcheinander.
      wenn man mit mehreren verschachtelten get's arbeitet wie hier, macht es sinn, wenn die suchergebnisse unter einem anderen namen abgespeichert werden als wie die db heisst.

      gruss
      olaf

     Antworten

    Beitrag von olaf (59 Beiträge) am Mittwoch, 8.Oktober.2003, 17:20. WWW: kleclan.de
    Re: doppelte einträge

      hi trixi, ich bins nochmal.

      es geht auch weniger kompliziert und ist sicher schneller.

      <perl>
      get "","maildb","mails"; # alle einträge aus der maildb holen
      while(get_next("mails") ){
            del "Id>$Id&mail==!$mail","maildb"; #alle nachfolgen eintrage mit der gleichen mail löschen.
      }
      </perl>
      

      gruss olaf

     Antworten

    Beitrag von :-(trixi (1 Beitrag) am Mittwoch, 8.Oktober.2003, 17:26.
    Re: doppelte einträge

      ... jetzt wird garnichts mehr gelöscht?!

      <perl>
      get "","email","email"; # alle einträge aus der maildb holen
       
      while(get_next("email") ){
      del "Id>$Id&email==!$email","email"; #alle nachfolgen eintrage mit der gleichen mail löschen.
      }
      </perl>
      

     Antworten

    Beitrag von olaf (59 Beiträge) am Mittwoch, 8.Oktober.2003, 17:44.
    Re: doppelte einträge

      T R I X E - B I T T E ! ! ! ! ! ! !

      änder doch bitte immer nur den db-namen !!!!

      get "bedingung","db-name","ein-name";
      

      while( get_next("ein-name") ){


      db-name und ein-name sollten NICHT gleich sein.

     Antworten

    Beitrag von olaf (59 Beiträge) am Mittwoch, 8.Oktober.2003, 17:51.
    T R I X I - B I T T E

      änder doch bitte immer nur den db-namen !!!!


      get "bedingung","db-name","ein-name";
       
      

      while( get_next("ein-name") ){


      db-name und ein-name sollten NICHT gleich sein, sonst kann es passieren das bp durch einander kommt (bei verschachtelten get's mit get's, put's und del's und mod's in der gleichen db).

     Antworten

    Beitrag von trixi (17 Beiträge) am Mittwoch, 8.Oktober.2003, 20:28.
    Re: T R I X I - B I T T E

      hi olaf,

      christoph hat ja geschrieben:
      "Es gibt keine dummen Fragen - jeder hat mal angefangen!"

      es muß ja ganz schön gestresst haben :-)
      fett und grossbuchstaben !!

      aber es hat seinen zweck erfüllt.
      es funktioniert - danke

      trixi

     Antworten

    Beitrag von olaf (59 Beiträge) am Mittwoch, 8.Oktober.2003, 21:34. WWW: kleclan.de
    Re: T R I X I - B I T T E

      hi trixi,

      sorry, wenn das gestresst klang. ich war nur verzweifelt, weil du immer geschrieben hast das es nicht klappt obwohl es bei mir gefunzt hat. und mir ist das problem nicht so schnell aufgefallen, weil so gross ist der unterschied ja nicht zwischen mails und email ;-))

      sollte nicht irgendwie bös' oder so klingen. wenn das so rüber kam entschuldige ich mich hiermit.

      gruss
      olaf

     Antworten

    Beitrag von trixi (17 Beiträge) am Mittwoch, 8.Oktober.2003, 22:09.
    @olaf

      hi olaf,

      daß war nicht böse aufgenommen.
      ich wäre wahrscheinlich innerlich explodiert.

      schön, daß es geklappt hat.

      danke
      trixi

     Antworten


     
 Liste der Einträge von 34500 bis 34650: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.12s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!