noch nicht abonnierte Newsletter anzeigen

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

  • noch nicht abonnierte Newsletter anzeigen

    Hallo Community,

    ich habe hier ein kleineres Problem welches wie folgt aussieht:

    Es gibt eine Tabelle namens Newsletter und eine Tabelle Namens newsletter_subscriber. In der Newsletter Tabelle sind verschiedene Newsletter hinterlegt (id, name, beschreibung) und in der newsletter_subscriber die e-mail adresse, die id des newsletters (newsletter_id) und die obligatorischen opt-in felder. Nun möchte ich wenn ein Benutzer einen Newsletter abonniert hat ihn darauf hinweisen, welche er noch nicht abonniert hat. Mit der Syntax

    PHP-Code:
    SELECT newsletter_id FROM `newsletter_subscriberWHERE `email` <> '$email' "  ,$db 
    geht das natürlich nicht (auch wenn ich es probiert habe) weil natürlich alle ids ausgegeben werden, bei denen NICHT meine e-mail adresse steht. also meinentwegen 100 mal die id 1 (newsletter 1) 50 mal die id 2 (newsletter 2) usw usf.

    Nun die Frage: wie würde das denn richtig funktionieren?

    danke sehr!

    tm

  • #2
    dein prob gehört allerdings ins mysql forum

    Code:
    SELECT DISTINCT newsletter_id FROM `newsletter_subscriber` WHERE `email` != '$email'
    **********
    arkos
    **********

    Kommentar


    • #3
      Original geschrieben von arkos
      dein prob gehört allerdings ins mysql forum

      Code:
      SELECT DISTINCT newsletter_id FROM `newsletter_subscriber` WHERE `email` != '$email'
      edit: blödsinn.... somit wirst du die ids zwar nur einmal bekommen, aber dafür dennoch alle.... sorry. brauche erstma n kaffee... )


      edit2: ich denke, bei der db-konstellation kannst du es nur in zwei schritten / zwei querys machen. im ersten alle newsletter raussuchen und im zweiten die raussuchen, die er schon gelesen hat - und die dann php-seitig vergleichen...

      allerdings sei mal ne frage am rande erlaubt: wenn er sich anmeldet, hat er doch definitiv noch keinen einzigen newsletter gelesen... warum also diese abfrage??
      Zuletzt geändert von arkos; 30.10.2007, 08:25.
      **********
      arkos
      **********

      Kommentar


      • #4
        Code:
        select id
        from newsletter
        where id not in (
          select newsletter_id
          from newsletter_subscriber
          where email='$email'
        )

        Kommentar


        • #5
          leider bin ich grade nicht am Entwicklungssystem und kann eure Anregungen nicht testen. Dennoch danke ich euch und würde das heute abend gleich mal ausprobieren... sorry auch für das falsche Forum!

          Deine Frage ist berechtigt: Dieser Hinweis kommt, sobald er sich für einen Newsletter angemeldet hat. Also sprich: Danke für Ihre Anmeldung zu xyz. Außerdem gibt es noch Newsletter blabla und blaballba...

          Viele Grüße,

          tm

          Kommentar


          • #6
            es funktioniert – aber was habe ich auch erwartet ;-) ich danke euch beiden. Zuerst wollte es nicht klappen – ich wusste nicht dass ich erst MySQL auf 4.x upgraden muss..

            danke

            tm

            Kommentar


            • #7
              Liegt an dem Subselect! Eine höhere MySQL-Version kann aber nicht schaden

              Kommentar

              Lädt...
              X