kostenloser Webspace werbefrei: lima-city


SELECT zweier Felder mit gleicher Bedeutung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    meron

    meron hat kostenlosen Webspace.

    Hi zusammen

    Ich habe eine Frage, bei der ich jetzt komplett anstehe.

    Ich bin mit PHP gerade am programmieren eines Supportsystems. Sprich wenn der "Kunde" ein Problem hat, kann er ein Ticket aufgeben und ich werde ihm dies beantworten (sofern das Projekt je fertig wird ;-).

    So, für das erfassen der Tickets habe ich folgende Möglichkeiten realisiert:
    1. Der Kunde erfasst das Ticket mit seinem persönlichen Benutzerkonto
    2. Der Kunde erfasst das Ticket auf ein Kundenlogin, Name Vorname kann er selber eingeben
    3. Freie Eingabe; Kunde und Name kann selber eingegeben werden.

    Das hat bis jetzt alles super funktioniert, jetzt stehe ich jedoch bei folgendem Problem an und ich befürchte, es ist wegen meiner Datenstruktur:
    Wenn der Kunde ein Ticket aufgegeben hat, wird ihm ein Bestätigungsmail zugesendet. Dieses wird über mein (noch nicht fertiges) Reportingtool generiert und per PHPMailer versandt.

    Das Problem dabei ist die Email Adresse:
    Wenn der Kunde den Fall mit seinem persönlichen Benutzerlogin aufgibt, soll mysql die Emailadresse aus dem Benutzerlogin holen, wenn die Person es frei oder nur aufs Kundenlogin bezogen erstellt, soll die Emailadresse aus dem Ticket gelesen werden.

    In der Tabelle ticket habe ich folgende Struktur:
    ticketid, => Ticketnummer
    benutzer => hier wird die Benutzerid gespeichert, sofern es mit dem Kundenlogin aufgegeben wird,
    aufgeber_name => hier wird der Name des Aufgebers gespeichert, aber nur, wenn nicht mit Benutzerlogin aufgegeben wird,
    aufgeber_email => selbes wie Name, nur mit Email

    So, und jetzt bräuchte ich eine SQL Abfrage, die mir immer die Email Adresse des Aufgebers ausgibt.
    Diese Abfrage funktioniert bereits:
    SELECT aufgeber_email AS aemail, benutzer.email AS bemail FROM ticket LEFT JOIN benutzer ON ticket.benutzer = benutzer.id WHERE ticketid = XY

    Dann muss ich aber in PHP prüfen, ob aemail bzw. bemail einen Wert enthält und dass nur dann ein Mail generiert werden darf => sonst FM von PHPMailer.
    Das scheint mir etwas gar mühsam, Nachbearbeitungen in PHP (sprich if else Abfragen) sind somit nicht erwünscht.

    Ich habe folgendes versucht (hoffte, dass das funktioniert):
    SELECT aufgeber_email AS email, benutzer.email AS email FROM ticket LEFT JOIN benutzer ON ticket.benutzer = benutzer.id WHERE ticketid = XY


    Das hat leider nicht geklappt, zudem schien mir das ganze etwas willkürlich, manchmal kam eine Adresse, manchmal nicht, weiss wer, wie ich das machen kann? Oder ist meine Datenstruktur falsch? (Was ich ehrlich gesagt befürchte).

    Danke für eure Rückmeldungen.

    Gruess
    Meron




  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. christianwege

    christianwege hat kostenlosen Webspace.

    Hi,

    Das scheint mir etwas gar mühsam, Nachbearbeitungen in PHP (sprich if else Abfragen) sind somit nicht erwünscht.

    Musst du nicht sowieso in PHP die Mail versenden oder verstehe ich was falsch?
  4. meron schrieb:

    Ich habe folgendes versucht (hoffte, dass das funktioniert):
    SELECT aufgeber_email AS email, benutzer.email AS email FROM ticket LEFT JOIN benutzer ON ticket.benutzer = benutzer.id WHERE ticketid = XY



    also wenn du zweimal AS email verwendest, kann es nicht funktionieren

    das vorher mit zwei verschiedene Namen für das Ergebnis macht schon Sinn
    SELECT aufgeber_email AS aemail, benutzer.email AS bemail FROM ....

    sonst überschreibt die benutzer.email ja die vom aufgeber

    Du solltest vielleicht schon bei (vor) Anlegen des Tickets prüfen,
    ob jeweils auch eine eMail-Adresse vorhanden (und gültig) ist
    so, dass Du Dir sicher sein kannst, das immer Mail-Adressen vorhanden sind

    wenn nicht ... soooo schlimm ist doch ne if Abfrage ob aemail oder bemail einen Wert hat doch garnicht

    if (!empty(....)) { ... }

  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!