Ergebnisse vergleichen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ergebnisse vergleichen

    Hallo,

    Ich stehe vor einem Problem!

    Ich habe zwei Tabellen, in denen sich Benutzer für nen Newsletter anmelden können. Nun möchte ich in nem Script alle eingetragenen email-Adressen ausgeben (soweit funktioniert auch alles)
    Habe jetzt also zwei getrennte Abfragen und Ausgaben!

    Das Problem ist nur, dass es Benutzer gibt, welche in beiden Bereichen eingetragen sind, diese Adressen will ich nur einmal ausgeben lassen.

    Wie kann ich das denn sinnvoller machen?
    P.S. Union Select wird vom Server nicht akzeptiert!

    Und noch der Abfrage und Ausgabecode:

    PHP-Code:
    if($status=="1"){    
    $sql_anz="select * from newsletter order by email";
    $ergebnis=mysql_query($sql_anz);
    $ergebnis2=mysql_query($sql_anz);
    $eintrag=mysql_fetch_object($ergebnis2);
    if(
    $eintrag==""){
    echo 
    "Keine Einträge vorhanden!";
    echo 
    "<br><a href=\"java script:window.close()\">Fenster schliessen</a>";
    exit;
    }
    echo 
    "Einträge aus Datentabelle: NEWSLETTER<br>";
      while(
    $row mysql_fetch_object($ergebnis))
        {
    print(
    "<a href=\"mailto:$row->email\">$row->email</a><br>");
        }
        
    $sql_anz2 "SELECT customers_email_address from customers where customers_newsletter like 1";
    $ergebnis3=mysql_query($sql_anz2);    
    echo 
    "<br>Einträge aus Datentabelle: CUSTOMERS<br>";
        while(
    $row2 mysql_fetch_object($ergebnis3))
        {
    print(
    "<a href=\"mailto:$row2->customers_email_address\">$row2->customers_email_address</a><br>");
        }} 
    Kann ich das mit PHP nachträglich realisieren, oder muss ich da ganz anders ran?
    Wer brauch schon ne Signatur?

  • #2
    Hat denn keiner ne Idee, ich mach schon den ganzen Tag an dem Teil rum!
    Wer brauch schon ne Signatur?

    Kommentar


    • #3
      vielleicht mit nem JOIN?

      Kommentar


      • #4
        Join und Distinct könnten dir helfen

        Kommentar


        • #5
          mit JOIN hab ich schon getestet, aber ich hab ja keine Argumente, die ich verküpfen will, und "zwei normale" Abfragen mit JOIN gehen meines Wissens nach nicht!

          Ich hab auch schon ne Abfrage in beiden Tabellen gleichzeitig gemacht, aber da bekomme ich nur Schrott ausgegeben!

          Aber wenn ihr meint mit JOIN ist das möglich, könntet ihr mal nen Codeschnipsel posten, wie ihr meint dass es sein müsste?
          Wer brauch schon ne Signatur?

          Kommentar


          • #6
            Probier mal diese Query in deiner 2ten Abfrage

            PHP-Code:
            $sql_anz2 "SELECT customers_email_adress from customers a,
             newsletter b WHERE b.email != a.customers_email_adress AND a.customers_newsletter like 1"

            Zuletzt geändert von Schnoop; 23.01.2005, 20:06.

            Kommentar


            • #7
              Stimmt, so trivial, wie ich mir das am Anfang dachte, ist das doch nicht.

              Schnoops Anfrage würde dir auch alle verschiedenen Möglichkeiten Ausspucken, die an Kombinationen unterschiedlicher Mail-Adressen gibt...

              Kommentar


              • #8
                Genau das ist ja mein Problem!

                Ich könnte das ganze evtl. umgehen. Aber dazu müsste ich jede Tabelle einzeln auslesen, und alle Werte einzeln miteinander vergleichen. Aber das ist doch wohl etwas zu umständlich.

                Ich bin echt über jeden neuen Ansatz dankbar!
                Wer brauch schon ne Signatur?

                Kommentar


                • #9
                  Hat keiner noch ne Idee?

                  Ich bin mittlerweile so weit, dass ich auch ne ganz andere Abfrage einbauen würde und alles komplet anders auslese!

                  Ich kann nur an der Struktur der beiden Tabellen nix mehr machen!

                  ###Help, i need somebodies HELP###
                  Wer brauch schon ne Signatur?

                  Kommentar


                  • #10
                    sind die email-adresse in der Tabelle newsletter Teilmenge von customers oder sind das voneinander unabhängige Daten mit zufälliger Schnittmenge ?

                    Kommentar


                    • #11
                      Notfalls, kannst so:

                      PHP-Code:
                      $sql1 "select * from newsletter order by email";

                      $sql2 "SELECT customers_email_adress
                                  FROM customers
                                  WHERE customers_newsletter like 1
                                  AND customers_email_adress NOT IN
                                    SELECT email
                                    FROM newsletter"

                      Wenn du den SQL-Server schonen willst, kannst du das auch mit PHP machen, indem du das Ergebnis der ersten Anfrage in ein Array schmeißt, und bei jeder Zeile der zweiten Abfrage mittels in_array() prüfst, ob die Email-Adresse schon drin ist.

                      Kommentar


                      • #12
                        Code:
                        CREATE TEMPORARY TABLE dummy
                        AS SELECT mail FROM dummy1
                        
                        INSERT INTO dummy SELECT mail FROM dummy2
                        
                        SELECT DISTINCT mail FROM dummy
                        Die temporäre Tabelle musst du nicht löschen, das passiert von ganz alleine
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Es sind dummerweise
                          voneinander unabhängige Daten mit zufälliger Schnittmenge
                          in zwei verschiedenen Tabellen!

                          *Sonst würde ich ja mit JOIN was anfangen können*
                          Wer brauch schon ne Signatur?

                          Kommentar


                          • #14
                            Original geschrieben von mrhappiness
                            Code:
                            CREATE TEMPORARY TABLE dummy
                            AS SELECT mail FROM dummy1
                            
                            INSERT INTO dummy SELECT mail FROM dummy2
                            
                            SELECT DISTINCT mail FROM dummy
                            Die temporäre Tabelle musst du nicht löschen, das passiert von ganz alleine
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              Genau an so was hab ich gedacht und gestern nen vollen Tag gegoogelt um so ne Lösung zu finden!
                              Werds nachher (wenn ich zuhause bin) gleich austesten obs auch läuft *g*

                              Falls die Version von "mrhappiness" net so will wie ich, dann kommt die von "neogrande" zum Einsatz (die läuft bestimmt)!



                              Danke schon mal an alle!
                              Wer brauch schon ne Signatur?

                              Kommentar

                              Lädt...
                              X