Meowsalot: Erinnerung verschicken

Guten Morgen,

ich möchte jede Stunde eine E-Mail mit einer Erinnerung verschicken. Es sollen alle Einträge ausgelesen werden, die größer als eine Stunde sind, meine Idee ist folgende

function emailErinnerungToDo($mysqli) {

	$datumHeute = date("Y-n-d");
	$uhrzeit = date("H:i");
            
    $stmt = $mysqli->prepare("SELECT code, kurzbeschreibung, apSender, status, beschreibung  
    						  FROM todo_grunddaten 
    						  WHERE erstellungsdatum=? 
    						  AND erstellungsuhrzeit <?");
           
    $stmt->bind_param("ss", $datumHeute, $uhrzeit);
    $stmt->execute();
    $stmt->bind_result($code, $kurzbeschreibung, $apSender, $status, $beschreibung);
    $stmt->store_result();
            
        if($stmt->num_rows() >  0) {     
            while ($stmt->fetch()){
                    
                $emailErinnerungToDo[] = array( 
                        
                    'code'            	=> $code, 
                    'kurzbeschreibung'	=> $kurzbeschreibung,
                    'apSender'         	=> $apSender,
                    'beschreibung'		=> $beschreibung
                );
            }
            return $emailErinnerungToDo;
            }
}

Allerdings wenn ein Eintrag z.B. um 09:27 Uhr gemacht wird, soll dieser noch nicht in der Mail von 10:00 Uhr auftauchen. Dieser Eintrag soll erst in der Mail von 11:00 Uhr auftauchen. Wie könnte ich dieses bewerkstelligen?

Bis bald!
Meowsalot (Bernd)

akzeptierte Antworten

  1. Tach!

    Allerdings wenn ein Eintrag z.B. um 09:27 Uhr gemacht wird, soll dieser noch nicht in der Mail von 10:00 Uhr auftauchen. Dieser Eintrag soll erst in der Mail von 11:00 Uhr auftauchen. Wie könnte ich dieses bewerkstelligen?

    Erstmal solltest du exakter formulieren, welchen Zeitraum du haben oder nicht haben möchtest. Und wenn du das dann exakt formuliert hast, ist es eigentliuch nur noch eine Frage der Übersetzung in Code. Also welchen Zeitraum genau möchtest du haben? Um 10 Uhr sollen alle Daten von vor 9 Uhr gelesen werden?

    dedlfix.

    1. Hallo dedlfix,

      Also welchen Zeitraum genau möchtest du haben? Um 10 Uhr sollen alle Daten von vor 9 Uhr gelesen werden?

      genau, alle Einträge dir vor oder gleich 09:00 Uhr erstellt wurden sollen um 10 Uhr erinnert werden.

      Bis bald!
      Meowsalot (Bernd)

      1. Tach!

        Also welchen Zeitraum genau möchtest du haben? Um 10 Uhr sollen alle Daten von vor 9 Uhr gelesen werden?

        genau, alle Einträge dir vor oder gleich 09:00 Uhr erstellt wurden sollen um 10 Uhr erinnert werden.

        Na dann: WHERE feld < NOW() - INTERVAL 1 HOUR

        Eine Variable in PHP braucht es dazu nicht, auch nicht fürs Datum, wenn die Felder in der Tabelle DATE/TIME-Felder sind.

        dedlfix.

      2. Hallo,

        Hallo dedlfix,

        Also welchen Zeitraum genau möchtest du haben?

        alle Einträge dir vor oder gleich 09:00 Uhr erstellt wurden sollen um 10 Uhr erinnert werden.

        Hast du weiteren Einschränkungsbedarf? Deine Liste wird da immer länger, wenn du nicht anderweitig alte Einträge entsorgst.

        Gruß
        Kalk

        1. Hallo Tabellenkalk,

          Hast du weiteren Einschränkungsbedarf? Deine Liste wird da immer länger, wenn du nicht anderweitig alte Einträge entsorgst.

          die muss ich einbauen. Sonst werden Mails doppelt und 10fach verschickt, was nicht in meinem Sinne ist. Werde es wohl so lösen. Nach dem versenden werde ich ein ein Feld in meiner Tabelle updaten. Wenn dort ein Wert drin steht ist die Mail bereits raus und darf nicht nochmals verschickt werden. Oder gibt es noch eine bessere/einfachere Lösung?

          Bis bald!
          Meowsalot (Bernd)

          1. Hallo,

            Nach dem versenden werde ich ein ein Feld in meiner Tabelle updaten. Wenn dort ein Wert drin steht ist die Mail bereits raus und darf nicht nochmals verschickt werden.

            Klingt erstmal wie ein Lösungsweg.

            Oder gibt es noch eine bessere/einfachere Lösung?

            Das ist stark abhängig vom eigentlichen Zweck der Aktion und der Datenstruktur.

            Gruß
            Kalk