Re: Loop Ausgabe filtern?! - 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 Matthias (331 Beiträge) am Donnerstag, 11.Oktober.2001, 19:52. WWW: w
    Re: Loop Ausgabe filtern?!

      Hey ihr Insider! Ich verstehe gar nix mehr...


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Matthias (331 Beiträge) am Mittwoch, 10.Oktober.2001, 22:46. WWW: www.multikultur.de
    Loop Ausgabe filtern?!

      Hallo! Per Loop Befehl habe ich mir eine winzige Datenbank erstellt, die den Inhalt des EMail Feldes meiner gesamten DB´s einfach auflistet.

      <loop db=Entsprechende Datenbank>
      

      <ul>$EMail</ul>
      <p>
      

      </loop>

      Allerdings kommen nun Mails u.U. mehrfach vor. Wie kann ich diese automatisch löschen lassen - also Doppelausgaben vermeiden? Die ausgegebene Liste soll z.B. als Quelle zum Newsletterversandt dienen. Doppelte Mails sind daher nicht so angebracht ;-)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 01:07.
    Re: Loop Ausgabe filtern?!

      Gabs schon n paar Mal hier und auch einige Lösungsvorschläge. Hier zwei davon:

      <perl>
      get "Id==*";
      $emails{$EMail}++ while(get_next);
      out "$email<br>" foreach $email (keys %emails);
      </perl>
      

      (Die Schleifen sind a bisserl fies kurz ;-) )

      Sander würde es wahrscheinlich so machen: ;-))

      <perl>
      get "Id==*";
      $"=" ";
      while(get_next)
      {
        push @emails, $EMail if index(" @emails ", " $EMail ")<0;
      }
      for $email (@emails)		# ich würde hier "foreach" nehmen, aber dann schimpft er mich wieder ;-)
      {
        out "$email<br>";
      }
      </perl>
      

      Bei grossen DBs ist die erste Variante glaub ich besser.

     Antworten

    Beitrag von Matthias (331 Beiträge) am Donnerstag, 11.Oktober.2001, 01:28. WWW: www.multikultur.de
    Re: Loop Ausgabe filtern?!

      Ich bin noch immer der intuitive BP User ohne Ahnung, daher klappts nich...

      Folgende Fehlermeldung:

      [ Fehler: (perl) in /Webfox/EMail: syntax error at (eval 543) line 4, near "$EMail (" ]

      Liegt wohl wieder mal daran, das ich den Code nicht richtig einbaue...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 01:53.
    Re: Loop Ausgabe filtern?!

      Jups, bei nem Syntax Error is meistens irgendein kleines Zeichen falsch...

      Aber Du müsstest schon den Code der den Fehler erzeugt hier rein kopieren, damit man sich anschauen kann, was schief läuft...

      Sonst isses schwierig ;-)

      Wobei die Fehlermeldung schon etwas sagt: In der Nähe von "$EMail (" - aber in beiden Vorschlägen gibt es gar keine derartige Zeichenfolge ;-)

     Antworten

    Beitrag von Matthias (331 Beiträge) am Donnerstag, 11.Oktober.2001, 12:10. WWW: www.drumming.de
    Re: Loop Ausgabe filtern?! Genaue Infos...

      Hier nochmal der Originalcode, so wie ich ihn eigefügt habe:

      <perl>
      get "Id==*";
      $emails{$EMail}++ while(get_next);
      out "$email<br>" foreach $email (keys %emails);
      </perl> 
      

      Und hier die Fehlermeldung:

      [ Fehler: (perl) in /Webfox/EMail: syntax error at (eval 2791) line 4, near "$email (" ]

      Gestern habe ich mit dem Code herumexperimentiert, daher habe ich heute nochmal den vorgeschlagenen Code verwendet. Meine Feldbezeichnung für Mail lautet EMail. Falls das evtl. wichtig sein sollte... Ich habe den Code am Ende der Seite hinter den loop Anweisungen eingefügt.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 13:27.
    Re: Loop Ausgabe filtern?! Genaue Infos...

      Ok, sorry, das war mein Fehler, anscheinend kann man "foreach"-Schleifen nich so abkürzen. So müsste es dann gehen (habs grad getestet):

      <perl>
      get "Id==*";
      $emails{$EMail}++ while(get_next);
      foreach $email (keys %emails)
      {
        out "$email<br>";
      }
      </perl>
      

     Antworten

    Beitrag von Matthias (331 Beiträge) am Donnerstag, 11.Oktober.2001, 18:26. WWW: www.multikultur.de
    Re: Bräuchte leider noch mal Hilfe - klappt noch net...

      Ich mache sicher etwas bei den Loop Anweisungen falsch... Es klappt noch nicht. Folgenden Code habe ich insgesamt 17 mal (da 17 verschiedene Datenbanken angesprochen werden sollen) aufgeschrieben:

      <loop db=Hier der DB Name>
      <ul>$EMail</ul>
      </loop>
      

      Ich habe keine Ahnung, ob das überhaupt 17 mal nötig ist, oder ich alle Datenbanken in einer <loop> ... </loop> Anweisung ansprechen kann.

      Danach habe ich Deinen Code eingesetzt:

      <perl>
      get "Id==*";
      $emails{$EMail}++ while(get_next);
      foreach $email (keys %emails)
      {out "$email<br>";}
      </perl>  
      

      Zwar kommt nun keine Fehlermeldung mehr, aber es funktioniert auch nicht. Liegt es an den 17 <loop> Aufrufen?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 20:11.
    Re: Bräuchte leider noch mal Hilfe - klappt noch net...

      Naaa, so gehts net...

      Also das "loop" brauchst Du jetzt garnich mehr. Wenn Du 17 DBs ansprechen willst (um Himmels Willen, warum denn soviele?? geht das nich in eine??) mach sowas:

      <perl>
      foreach $dbname ("db1", "db2", ...etc... );
      {
        get "Id==*", $dbname;
        $emails{$EMail}++ while(get_next $dbname);
      }
      

      foreach $email (keys %emails)
      {
        out "$email<br>";
      }
      </perl>
      

      Beim ...etc... musst Du natürlich die restlichen 15 DB-Namen eintragen... Dann hast Du aus allen 17 DBs alle EMail-Adressen ohne Doppler...

     Antworten

    Beitrag von Matthias (331 Beiträge) am Freitag, 12.Oktober.2001, 00:22.
    Re: Noch ne Fehlermeldung...

      Es sind drei verschiedene Angebote daher so viele DB´s - ausserdem bin ich nun mal kein Programmierer ;-)

      Und leider gibt´s noch eine Fehlermeldung - bitte habt Geduld mit mir :-)

      Folgender Code:

      <perl>
      foreach $dbname ("Drumming/Musiker_sucht", "Drumming/SucheBiete", "Drumming/Linkliste/Linkliste_Sonstige","Drumming/Termine/Termine","Allwanted/Companywanted","Allwanted/Thingswanted","Allwanted/Thingswanted","Allwanted/Travelwanted","Allwanted/Carswanted","Allwanted/Motorbikewanted","Allwanted/Homewanted","Allwanted/Jobswanted","Allwanted/Jobswanted","Allwanted/Singlewanted","Tais/Buddy","Tais/Kleinanzeigen");
      {
       
      get "Id==*", $dbname;
        $emails{$EMail}++ while(get_next $dbname);
      }
       
      

      foreach $email (keys %emails)


      {
      out "$email<br>";
      }
      </perl> 
      

      Folgende Fehlermeldung:

      [ Fehler: (perl) in /Webfox/EMail: syntax error at (eval 235) line 2, at EOF ]

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 12.Oktober.2001, 00:55.
    Re: Noch ne Fehlermeldung...

      Das lernst Du schon noch (Programmieren) ;-)

      Der Strichpunkt ; am Ende der ellenlangen foreach $dbname (.......); -Zeile gehört da nicht hin!

      Mmh, haben die denn alle unterschiedliche Felddefinitionen? Wenn nich, könnte man die bestimmt zu einer einzigen DB zusammenfassen...

     Antworten

    Beitrag von Matthias (331 Beiträge) am Freitag, 12.Oktober.2001, 14:52.
    Re: Noch ne Fehlermeldung... KLAPPT & Antwort

      Hi! Besten Dank für die Lösung - die funzt nun auch!

      Die DB´s haben schon unterschiedliche Felddefinitionen. Allwanted.de ist ein Kleinanzeigenmarkt mit acht verschiedenen Bereichen. Drumming.de ist eine Musikerinfoplattform und TAIS.de ein Tauchshop.

      Die einzigen gleichen Felder sind die zum Thema Name, Kontaktangaben, EMail usw.

      Vielleicht könnte man das Ganze ja schlanker gestalten, aber ich wüsste nicht wie...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 12.Oktober.2001, 15:08.
    Re: Noch ne Fehlermeldung... KLAPPT & Antwort

      Nee, wenn die wirklich so unterschiedlich sind, dann ist das schon das Beste so, wie Du das gemacht hast... ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 11.Oktober.2001, 19:25.
    Re: Loop Ausgabe filtern?!

      LOL

      ich hab den Code nun schon mindestens 10 mal so hier reingestellt, warum rückst du erst jetzt damit raus? ;-)

      Wenn ich dich recht verstehe, steht dann
      blö@wew.de => 1
      du@iche.com => 2
      dfgs@hgjmf.net => 3 drin?
      natürlich ändert sich die Zahl, wenn die Email ein 2tes mal auftaucht.
      Hab ich es?

      wobei ich wieder an die Diskussion hash vs. array denken muß ;-)

      Sander

     Antworten

    Beitrag von Matthias (331 Beiträge) am Donnerstag, 11.Oktober.2001, 19:52. WWW: w
    Re: Loop Ausgabe filtern?!

      Hey ihr Insider! Ich verstehe gar nix mehr...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 20:00.
    Re: Loop Ausgabe filtern?!

      Ein bisschen Spass muss sein ;-)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 19:59.
    Re: Loop Ausgabe filtern?! - hehe...

      Hehe, weiss auch nich... Ich fand das so nett, wie Du Dich über das index(" @array ", " $text ") gefreut hast, das wollt ich Dir nich kaputt machen ;-)) (oder um ganz ehrlich zu sein, ich hab nie drüber nachgedacht ;-) ).

      fast, es steht normalerweise

      blö@wew.de => 1
      du@iche.com => 1
      dfgs@hgjmf.net => 1

      drin, ausser die email kommt öfter vor. d.h. es steht halt genau zu jeder email genau drin wie oft sie vorkommt, was ja auch ganz interessant sein kann.

      na, in dem fall sind hashes schneller, grade bei grossen datenmengen: das index(" @array ", " $text ") ist zwar schon schnell, aber bei bei 10.000 einträgen? und das wird ja bei jedem eintrag durchsucht! also erst die suche durch 1 feldinhalt, dann die suche durch 2 feldinhalte, dann die suche durch 3 feldinhalte... bis zur suche durch 10000 feldinhalte... ergibt irgendeine wahnwitzige anzahl an suchvorgängen ;-)

      der hash braucht immer genau einen zugriff... ;-)

     Antworten

    Beitrag von Matthias (331 Beiträge) am Donnerstag, 11.Oktober.2001, 20:04. WWW: www.multikultur.de
    Re: Loop Ausgabe filtern?! - hehe...

      Klar muss Spass sein... Bekomme ICH denn auch noch ne Lösung ;-)
      Bei der Gelegenheit wollte ich noch wissen, ob ich bp auch ohne Hosting mieten kann. Du hattest in einer Mail an mich mal gesagt, das dies in den nächsten Tagen kommen würde Christoph...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 20:08.
    Re: Loop Ausgabe filtern?! - hehe...

      bin doch schon dabei ;-)

      kommt. bald. montag, nächste woche ;-)

     Antworten

    Beitrag von Matthias (331 Beiträge) am Donnerstag, 11.Oktober.2001, 20:18.
    Re: Loop Ausgabe filtern?! - hehe...

      Übt sich in Geduld ;-)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Donnerstag, 11.Oktober.2001, 23:09.
    Re: Loop Ausgabe filtern?! - hehe...

      Jetzt haste bei all der eingeübten (Un)geduld die Antwort übersehen ;-)

     Antworten


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