Re: Re: Code nimmt zuviel Zeit in Anspruch .... - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Pouraga (1396 Beiträge) am Sonntag, 26.August.2007, 19:07.
    Re: Re: Code nimmt zuviel Zeit in Anspruch ....

      Das bissel rechnen nimmt keine Zeit in Anspruch, wohl aber die unzähligen schleifen.
      Das ganze kann man auch ganz leicht in einem einzigen Datenbankdurchlauf erledigen.


      Vielicht solltest du dir auch mal überlegen das ganze statisch wegzuspeichern, weil der Inhalt ändert sich ja eh nur einmal am Tag.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Joerg (159 Beiträge) am Sonntag, 26.August.2007, 12:09.
    Code nimmt zuviel Zeit in Anspruch ....

      Moin!

      Folgender Code nimmt leider sehr viel Zeit in Anspruch.
      Gibt es da evtl. eine bessere Lösung?

      ##############   GEBURTSTAG HEUTE   ###################
      

      $T1=datum("jetzt","Tag.Monat");
      get "Id==*", "user";
      while(get_next("user"))
      {
      $T2=datum("$Geburtstag","Tag.Monat");
       if ($T1 eq $T2)
      {
        out "Heute hat <a href=\"xxxxxxxxxxxxxx\">$Vorname</a> Geburtstag</h3>";
      }
      ##############   GEBURTSTAG MORGEN  ###################
      }
      while(get_next("user"))
      {
      $T3=datum("jetzt","Tag.Monat")+1;
      $T4=datum("$Geburtstag","Tag.Monat");
       if ($T3 eq $T4)
      {
        out "Morgen hat <a href=\"xxxxxxxx\">$Vorname</a> Geburtstag</h3>";
      }
      }
      ##############   GEBURTSTAG ZWEI TAGE ###################
      }
      while(get_next("user"))
      {
      $T3=datum("jetzt","Tag.Monat")+2;
      $T4=datum("$Geburtstag","Tag.Monat");
       if ($T3 eq $T4)
      {
        out "Morgen hat <a href=\"xxxxxxxx\">$Vorname</a> Geburtstag</h3>";
      }
      }
      ##############   GEBURTSTAG DREI TAGE ###################
      }
      while(get_next("user"))
      {
      $T3=datum("jetzt","Tag.Monat")+3;
      $T4=datum("$Geburtstag","Tag.Monat");
       if ($T3 eq $T4)
      {
        out "Morgen hat <a href=\"xxxxxxxx\">$Vorname</a> Geburtstag</h3>";
      }
      }
      

     Antworten

    Beitrag von Ulf (144 Beiträge) am Sonntag, 26.August.2007, 12:31.
    Re: Code nimmt zuviel Zeit in Anspruch ....

      $differenz=(datum("$Geburtstag","Tag.Monat")-datum("jetzt","Tag.Monat"))
      

      vieleicht noch mal extra einklammern oder so

      und dann if ($differenz==0) {heute} $differenz==1 morgen und so weiter

      schönen Sonntag

     Antworten

    Beitrag von Joerg (159 Beiträge) am Sonntag, 26.August.2007, 13:20.
    Re: Re: Code nimmt zuviel Zeit in Anspruch ....

      Ist leider auch nicht schneller....
      Trotzdem vielen Dank und auch Dir einen schönen Sonntag!

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Sonntag, 26.August.2007, 19:07.
    Re: Re: Code nimmt zuviel Zeit in Anspruch ....

      Das bissel rechnen nimmt keine Zeit in Anspruch, wohl aber die unzähligen schleifen.
      Das ganze kann man auch ganz leicht in einem einzigen Datenbankdurchlauf erledigen.


      Vielicht solltest du dir auch mal überlegen das ganze statisch wegzuspeichern, weil der Inhalt ändert sich ja eh nur einmal am Tag.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Sonntag, 26.August.2007, 19:04.
    Re: Code nimmt zuviel Zeit in Anspruch ....

      Da sind Fehler drin:

      $T3=datum("jetzt","Tag.Monat")+1;
      

      funktioniert nicht, weil "26.8"+1 witzigerweise geht, aber "31.8"+1 = 32.8 ergibt... Richtig ist:

      $T3=datum("+1","Tag.Monat");
      


      Eine Drittelung der Zeit erreichst Du wenn du die 3 Schleifen in eine machst:

      while(get_next("user"))
      {
       $geb=datum("$Geburtstag","Tag.Monat");
       $heute=datum("jetzt","Tag.Monat");
       $morgen=datum("+1","Tag.Monat");
       $uebermorgen=datum("+2","Tag.Monat");
       if ($geb eq $heute)
       {
        out "Heute hat <a href=\"xxxxxxxxxxxxxx\">$Vorname</a> Geburtstag</h3>";
       } elsif($geb eq $morgen)
       {
        out "Morgen hat <a href=\"xxxxxxxxxxxxxx\">$Vorname</a> Geburtstag</h3>";
       } elsif($geb eq $uebermorgen)
       {
        out "Übermorgen hat <a href=\"xxxxxxxxxxxxxx\">$Vorname</a> Geburtstag</h3>";
       } 
      }
      

      Viel viel schneller wäre allerdings das Geburtstagsfeld auf eigenes Datumsformat zu stellen und zwar nur mit Tag & Monat und dann mit

      get "Geburtstag>=jetzt Geburtstags<jetzt+3", "user";
      

      abzufragen.... s. auch: http://doku.baseportal.de/59.html

     Antworten


     
 Liste der Einträge von 12451 bis 12601:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!