fritz85: Datum + for-schleife

Hallo,

Ich habe eine for-schleife und einige Datums in der DB....

Da mehrere Datum in der Spalte sind habe ich ein problem..

ich splitte die schon zuvor und er liest sie auch korrekt durch... jedoch soll er "DATUM ABGELAUFEN" erst bringen wennn ALLE datum abgelaufen sind.... jetzt bringt er es schon wenn 1 abgelaufen ist :(

for($i=0;$i<count($separateDaten);$i++)
{
  if(($separateDaten[$i]+84600)<= time())
  {
delete = "DATUM ABGELAUFEN";
  }
}

  1. Hallo Fritz,

    Ich habe eine for-schleife und einige Datums in der DB....
    Da mehrere Datum in der Spalte sind habe ich ein problem..

    willst Du damit sagen, dass Du keine Datumsspalte verwendest, sondern ein Textspalte, in der _mehrere_ Daten durch Trennzeichen getrennt vorliegen.
    Wenn ja, dann beseitige bitte diesen Designfehler. Du solltest allermindestens
    die erste Normalform einhalten, die Du so verletzt.

    ich splitte die schon zuvor und er liest sie auch korrekt durch... jedoch soll er "DATUM ABGELAUFEN" erst bringen wennn ALLE datum abgelaufen sind.... jetzt bringt er es schon wenn 1 abgelaufen ist :(

    Ich verstehe nicht, was Du meinst, aber ...

    [code lang=php]

    if(($separateDaten[$i]+84600)<= time())
      {
           delete = "DATUM ABGELAUFEN";
      }

    ... funktioniert nicht. Die meisten Tage haben 86400 Sekunden (nicht 84600, Tippfehler?), aber nicht alle. Nutze die Datumsfunktionen Deines Datenbankmanagementsystems (DBMS)!

    Freundliche Grüße

    Vinzenz

    1. willst Du damit sagen, dass Du keine Datumsspalte verwendest, sondern ein Textspalte, in der _mehrere_ Daten durch Trennzeichen getrennt vorliegen.
      Wenn ja, dann beseitige bitte diesen Designfehler. Du solltest allermindestens
      die erste Normalform einhalten, die Du so verletzt.

      Der Vorgänger hat das so publiziert.
      Alle Timestamps sind durch "," getrennt.

      Ich verstehe nicht, was Du meinst, aber ...

      [code lang=php]

      if(($separateDaten[$i]+84600)<= time())
        {
             delete = "DATUM ABGELAUFEN";
        }

      Ich habe zum Teil mehrere Daten drin... und sobald ALLE Daten abeloffen sind soll er mir die Meldung bringen: "DATUM ABELAUFEN" nun bringt er mir sie so:

      3 Datum erfasst
      1 Datum abgelaufen

      so bringt er mir die meldung obwohl die anderen 2 noch nicht abelaufen sind

      1. Hallo Fritz,

        willst Du damit sagen, dass Du keine Datumsspalte verwendest, sondern ein Textspalte, in der _mehrere_ Daten durch Trennzeichen getrennt vorliegen.
        Wenn ja, dann beseitige bitte diesen Designfehler. Du solltest allermindestens
        die erste Normalform einhalten, die Du so verletzt.

        Der Vorgänger hat das so publiziert.
        Alle Timestamps sind durch "," getrennt.

        Du Armer. Herzliches Beileid.

        Ich verstehe nicht, was Du meinst, aber ...

        [code lang=php]

        if(($separateDaten[$i]+84600)<= time())
          {
               delete = "DATUM ABGELAUFEN";
          }

        Ich habe zum Teil mehrere Daten drin... und sobald ALLE Daten abeloffen sind soll er mir die Meldung bringen: "DATUM ABELAUFEN" nun bringt er mir sie so:

        Erstens möchte ich meinen Hinweis auf die nicht korrekte Ablaufprüfung einer einzelnen Datumsprüfung wiederholen.

        Zweitens:
        Eine mögliche Vorgehensweise wäre wie folgt:
        Setze vor der Schleife durch die Wertliste eine Statusvariable auf "Alle abgelaufen" oder so ähnlich.
        Ist eines noch nicht abgelaufen, sethe die Statusvariable auf "Nicht alle abgelaufen" (Verwende in der Praxis eher true und false)
        Sobald sich der Wert auf "Nicht alle abgelaufen" ändert, könntest Du die Schleife mit der break-Anweisung verlassen.

        Prüfe nach der Schleife den Wert der Statusvariablen.

        Freundliche Grüße

        Vinzenz