Vinzenz Mai: while Schleife in if Abfrage

Beitrag lesen

Hallo Sabine

erstmal, das mit dem DU war nicht so gemeint, war eher ein Tippfehler ;-) (Ich sollte mir meine Antworten vorher mal durchlesen.)

*g*, sowas passiert jedem mal, siehe z.B. https://forum.selfhtml.org/?t=102524&m=630442, ein abschreckendes Beispiel ;-)

Der Februar hat mal 28, mal 29 Tage, ich denke, daß kann ich nachher, wenn alles funktioniert mit modulo 4 bzgl. Jahr definieren (ist schon spät, weiß nicht mehr den Endbuchstaben von modul... - ich glaube, ich muß mein Diplom abgeben ). Das mache ich aber später, also nicht das Diplom abgeben, sondern den Februar definieren.

Dann kriegst Du im Jahr 2100 einen Fehler. Der wird Dir wohl egal sein ;-)

Nun habe ich das Skript umgeschrieben und natürlich werden jetzt alle Termine des Monats ausgegeben (wahrscheinlich wegen switch ($heumonat). Ich will doch aber nur die folgenden 7 Tage ....... :-(

Alle? Deine for-Schleife nimmt nur 7 Werte an, das dürfte nur 7 Tage geben, aber Du hast immer noch einen Fehler drin:

$heutag=date("j");
$heumonat=date("n");
$heujahr=date("Y");

for ($i=0; $i < 7; $i++)
{
   switch($heumonat){

case 1: case 3: case 5: case 7 : case 8 : case 10:
     if($heutag > 32)

Wie kommst Du dahin? Was passiert mit dem 32.

Inkrementiere zuerst!

$heutag = $heutag + 1;     // Alternative: $heutag++;
  switch ($heumonat) {
  case 1:
  case 3:
  case 5:
  case 7:
  case 8:
  case 10:
      if ($heutag > 31) {    // Du siehst den Unterschied?
          $heutag = $heutag - 31;
          $heumonat++;
      }
      break;
   ...

Außerdem entfällt die Notwendigkeit, den else-Zweig zu betrachten.

Bitte gib' zu Debug-Zwecken die SQL-Anweisung aus.

Freundliche Grüße

Vinzenz