Ankündigung

Einklappen
Keine Ankündigung bisher.

Newsletter / Wie umsetzen ??? (Kategorietabelle)

Einklappen

Neue Werbung 2019

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

  • Newsletter / Wie umsetzen ??? (Kategorietabelle)

    Hallo Zusammen,

    vorab:
    bisher wurden die meisten meiner Forumsbeiträge damit abgeschmettert, dass ich Grundlagen lernen soll bzw. mich der Suche bedienen soll.
    So richtig nachvollziehen kann ich das nicht. Denn es hat ja nichts mit Faulheit zu tun, dass man nicht sucht und ich finde man hat einen sehr großen Lerneffekt auch dadurch, dass man auf ganz spezielle Fragen von einem von Euch eine entsprechende Antwort erhält. Aber das macht nichts. Sollte dieser Beitrag von mir, wieder in die Richtung gehen, dass ich für solche Sachen erst einmal mehr andere Sachen wissen sollte, bitte ich dies zu entschuldigen.

    Ich plane eine Art Newsletter:
    Folgende Dinge bekomme ich mithilfe von PHP und MySQL schon hin, obwohl ich Anfänger bin und diese Sachen aber wahrscheinlich auch für einen Anfänger nicht allzu schwierig sind.

    - Ich kann Daten in mySql eintragen
    - Ich kann Daten aus mySql abfragen
    - Ich kann HTML-Seiten erstellen, in der die Benutzer entsprechende Informationen eintragen und sich anmelden können bzw. die Daten dann in der Datenbank auch gespeichert werden.

    Dieses ganze Newsletter-System soll eigentlich aus 4 Bereichen bestehen:
    In einem Bereich kann ich Emails versenden (das funktioniert schon)
    In einem Bereich kann ich mich anmelden (das funktioniert schon)
    In einem Bereich, muss der Nutzer seine Daten berabeiten können (funktioniert noch nicht)
    In einem Bereich muss ein entspr. Nutzer die Möglichkeit haben, andere Nutzer etc. zu löschen usw.

    Nun habe ich gar nicht so eine ganz spezielle programmiertechnische Frage, sondern ich habe folgendes vor: auf der Seite, auf der sich die Nutzer anmelden können, habe ich jede Menge Felder input type = checkbox zum anhaken hinterlegt. Die Benutzer sollen hier die Möglichkeit bekommen sich eine Kategorie auszuwählen.

    Beispiel -
    Benutzer A sucht sich Kategorie Auto aus und auch
    Benutzer B sucht sich Kategorie Auto aus und
    Benutzer C sucht sich Kategorie Motorrad aus.

    Es ist jetzt vermutlich ganz leicht. Aber wie muss ich hier vorgehen ?
    Wie sollte hier die Tabellenstruktur aussehen ?

    Mache ich für die Kategorien eine eigene Tabelle ?
    Trage ich die möglichen Kategorien hier schon vorher ein ?

    Oder schreibe ich die Kategorien einfach mit in die Benutzerdatentabelle ?
    Aber ein Benutzer kann mehrere Kategorien haben.

    Später beim Versenden der Email soll man als Sender in jedem Fall die Möglichkeit haben zu sagen, ich möchte eine Email an die Kategorie Auto versenden und nur diese Nutzer sollen benachrichtigt werden.

    Danke und Grüße

    Felge


  • #2
    Denn es hat ja nichts mit Faulheit zu tun, dass man nicht sucht
    Sondern, womit? Womit auch immer - es rechtfertigt nicht, sich hier Individualservice zu genehmigen.
    und ich finde man hat einen sehr großen Lerneffekt auch dadurch, dass man auf ganz spezielle Fragen von einem von Euch eine entsprechende Antwort erhält
    Klar hat man den. Man hat auch einen sehr großen Komforteffekt, wenn einem jeden Morgen jemand nach Wunsch die Brötchen schmiert. Nur das zu verlangen ist unverschämt.

    Zur Frage kann ich leider nichts sagen, weil Du dort vom Hundersten ins Tausendste springst. Ich schlage vor, Du beschränkst Dich zunächst auf ein Teilproblem.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Hallo Nikosch,

      in Ordnung. Verlangen wollte ich das auch nicht. Manchmal sind es ja nur kleine Tipps, die man benötigt, um weiterzukommen.

      Ich stelle auch jetzt auch keine weiteren Fragen mehr.
      Trotzdem Danke.

      Grüße Felge

      Kommentar


      • #4
        Was du da machen willst ist eine sogenannte 'n' zu 'n' Verbindung. Das heißt jeder Nutzer kann mehrere Kategorien haben und jede Kategorie kann mehrere Nutzer haben. Dafür benötigst du drei Tabellen.

        1. Tbl. users -> Felder id, user
        2. Tbl. categories -> Felder id, category
        3. Tbl. categories_users -> Felder id, user_id, category_id

        In der dritten Tabelle kannst du nun für jeden User alle gewählten Kategorien oder für jede Kategorie alle User abfragen. Das sollte in der Grundstruktur reichen.

        Viel Spaß

        Kommentar


        • #5
          Genau gesagt ist es eine m:n Verbindung Die Anzahl der zugeordneten Nutzer und Kategorien ist nämlich nicht (zwingend) gleich

          http://de.wikipedia.org/wiki/Kardina...ellierung)#n:m
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            Später beim Versenden der Email soll man als Sender in jedem Fall die Möglichkeit haben zu sagen, ich möchte eine Email an die Kategorie Auto versenden und nur diese Nutzer sollen benachrichtigt werden.
            Genau das ist der Punkt, mit dem du die Datenorganisation beginnst.

            Wenn es diese Kategorien gibt:

            Tabelle kat
            id text
            1 Auto
            2 Moped
            3 Wohnmobil

            und diese user:

            Tabelle user
            id name
            1000 Hans
            1001 Peter
            1002 Klaus

            Dann können diese ihre Kategorien wie folgt "buchen":

            userid katid
            1001 1
            1001 3
            1002 1
            1003 2
            1003 3

            Um nun eine Aussendung zu starten an alle Wohnmobil-User musst du mit einem SQL statement diese Zeilen treffen:
            userid katid
            1001 3
            1003 3

            Jetzt noch darüber nachdenken, welche zusätzlichen Spalten die Tabellen benötigen:

            User: Emailadresse, Anrede, Vorname, Name, Datum Anmeldung, IP Anmeldung, Datum Anmeldebestätigung (DOI) IP Bestätigung, Datum Abmeldung, IP Abmeldung
            PHP-Code:
            if ($var != 0) {
              
            $var 0;

            Kommentar


            • #7
              Wow. Vielen Dank für die Antworten. Prima. Super Danke. Und erst dabei fällt mir auf, dass ja auch, je nachdem wie die Antwort ausfällt, auch schon jede Menge Arbeit dahintersteckt. Deshalb vielen Dank. Aber ich möchte wirklich nicht ausnutzen oder ähnliches. Dennoch möchte ich es nicht unversucht lassen, eine weitere Frage zu stellen (Wichtig: Ich möchte hier keine Programmieraufträge loswerden): Ich möchte alles selbst machen:

              Wenn ich dann diese dritte Tabelle habe, in denen ich die Id's der Nutzer und die Id's der auserwählten Kategorie eintragen soll zusätzlich zu der tabelleneigenen ID. Wie ist hier die richtige Vorgehensweise?

              Ich habe ja ein Anmeldefenster für den Benutzer. Dieser meldet sich beispielsweise mit seinem Nachnamen, Vornamen und Email-Adresse an.
              (Zu diesem Zeitpunkt hat er ja noch keine ID)
              Zusätzlich klickt er eine Kategorie an. Ich vermute, dass die Kategorie schon vorher in einer anderen Tabelle existieren sollte oder ?

              Kurz nach der Anmeldung wird ja aber eine ID für den Anwender vergeben.

              Wie bekomme ich dann die ID's der beiden ja eigentlich neuen Einträge in die dritte Tabelle ?
              Zuerst dachte ich, ich müsste ein Select Nachname o. ä. machen um mir so die ID zu holen und diese in die andere Tabelle zu schreiben. Aber dadurch habe ich ja die Kategorie noch nicht.

              Viele Grüße

              Felge

              Kommentar


              • #8
                Code:
                <select name="kategorie" size="3" multiple>
                  <option value="1">Auto</option>
                  <option value="2">Moped</option>
                  <option value="3">Wohnmobil</option>
                </select>
                Leute können dann mehrere Kategorien anklicken. Schau dir an wie der $_POST-Array aussieht, wenn ein oder mehrere Auswahlen selektiert werden.

                Du schreibst zuerst die User-Stammdaten in die Usertabelle. Die vergebene ID bekommst du mit mysql_insert_id(). Diese nutzt du dann für die Verbindungstabelle.
                PHP-Code:
                if ($var != 0) {
                  
                $var 0;

                Kommentar


                • #9
                  Hi,

                  ganz herzlichen Dank.
                  Habe mir das mit dem $_POST Array schon einmal angeschaut und mir auch per Echo anzeigen lassen. Das klappt. Die Datenbankeinträge sind leider noch leer.
                  Aber da finde ich schon was. Hoffentlich. Wird eigentlich dann für jeden Checkboxeintrag eine neue ID in der Datenbanktabelle vergeben?

                  Grüße Felge

                  Kommentar


                  • #10
                    Du scheinst, was PHP-Programmierung anbelangt, noch Neuling zu sein. Vielleicht solltest du besser doch die Finger von solch einer brisanten Anwendung lassen und eine fertige Software einsetzen. Wenn dein (fehlerbehaftetes) Script E-mails falsch versendet, dann hast du schnell mal ein paar teure Abmahnungen am Hals.
                    PHP-Code:
                    if ($var != 0) {
                      
                    $var 0;

                    Kommentar


                    • #11
                      Hallo... (da bin ich wieder),

                      natürlich bin ich PHP-Neuling und möchte auch mit dem was ich hier versuche zu bauen, kein Geld verdienen. Nach Recherchen im Internet dachte ich, dass diese Newsletter-Sache durchaus eine Sache ist, die für ein erstes Testprojekt geeignet sein kann und ich finde es immer schön, dass man ein Ziel vor Augen hat. So macht das lernen viel mehr spaß. Ich kann ja mal beide Dateien anhängen, um die es hier geht. Mit Kennwörtern etc., vielleicht bin ich ja auf dem richtigen Weg.

                      Grüße Felge

                      Müsste halt nur wissen, wie die Werte aus den Checkboxen jeweils einen neuen Eintrag in der Kategorien-Tabelle erzeugen.
                      Angehängte Dateien

                      Kommentar


                      • #12
                        Zitat von Felge Beitrag anzeigen
                        natürlich bin ich PHP-Neuling und möchte auch mit dem was ich hier versuche zu bauen, kein Geld verdienen. Nach Recherchen im Internet dachte ich, dass diese Newsletter-Sache durchaus eine Sache ist, die für ein erstes Testprojekt
                        Jeder hier war mal Anfänger und Neuling. Ich zum Beispiel habe mir zum Einstieg in PHP auf SourceForge ein kleines, übersichtliches, aber trotzdem interessante PHP-Projekt gesucht und erst mal einige Zeit geschaut, wie "die" das so machen. Da bekommt man kostenlos eine Menge "knowhow".

                        Grüße
                        Thomas

                        Kommentar

                        Lädt...
                        X