Re: Pageimpressionen zählen - 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 Fritz (15 Beiträge) am Montag, 26.April.2004, 16:36.
    Re: Pageimpressionen zählen

      Hallo Ruben,

      habe das ganze jetzt mal umgestrickt. tag_statistik läuft aber in der monat_statistik wird kein neuer DS angelegt. Das ($tag<$akt_tag) muss so bleiben sonst legt er jedesmal einen neuen DS an.
      Fliege bitte noch mal drüber. Danke

      <perl>
      # --- Datumsvariablen festlegen ---#
      $akt_tag= datum("jetzt","Tag");
      $akt_monat=datum("jetzt","Monat");
      $akt_jahr=datum("jetzt","Jahr");
      

      get "tag==$akt_tag","tag_statistik", "tagdatensaetze";
      get "monat==$akt_monat","monat_statistik", "monatdatensaetze";
      

      #--- löschen Datensatz wenn Monat nicht aktuell
      while(get_next("tagdatensaetze"))
      {
      if ($monat<$akt_monat){del "Id==$Id","tag_statistik";}
      }
      

      #--- wenn neuer Tag angefangen Datensatz anlegen, sonst Counter hochzählen
      {
      if ($tag<$akt_tag) {put ["tag", "$akt_tag", "monat", "$akt_monat", "Counter", "1"],"tag_statistik";}
      else {mod "tag==$akt_tag",["Counter","$Counter"+1],"tag_statistik";}
      }
      

      #--- wenn neuer Monat angefangen Datensatz anlegen, sonst Counter hochzählen
      while(get_next("monatdatensaetze"))
      {
      if ($monat<$akt_monat) {put ["monat", "$akt_monat", "jahr", "$akt_jahr", "Counter", "1"],"monat_statistik";}
      else {mod "monat==$akt_monat",["Counter","$Counter"+1],"monat_statistik";}
      }
      </perl>
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Fritz (15 Beiträge) am Sonntag, 25.April.2004, 22:04.
    Pageimpressionen zählen

      Hallo @all,

      ich habe mir einen Counter gebastelt, welcher aber nicht so wirklich funktioniert. Kann ein echter Profi den Code mal überfliegen und mir den Fehler zeigen.
      Problem: beim Aufruf wird der Counter innerhalb von ca.10 sec um ca.2000 erhöht.
      Es scheint eine richtig gut funktionierende Schleife geworden zu sein!



      <perl>
      # --- Datumsvariablen festlegen ---#
      $akt_tag= datum("jetzt","Tag");
      $akt_monat=datum("jetzt","Monat");
      $akt_jahr=datum("jetzt","Jahr");
      

      get "tag==$akt_tag","tag_statistik";
      get "monat==$akt_monat","monat_statistik";
      

      #--- löschen Datensatz wenn Monat nicht aktuell

      while(get_next("tag_statistik"))
      {
      if ($monat<$akt_monat){del "Id==$Id","tag_statistik";}
      }
      

      #--- wenn neuer Tag angefangen Datensatz anlegen, sonst Counter hochzählen

      while(get_next("tag_statistik"))
      {
      if ($tag<$akt_tag) {put "tag:=$akt_tag monat:=$akt_monat Counter:=1","tag_statistik";}
      

      else {mod "tag==$akt_tag",["Counter","$Counter"+1],"tag_statistik";}
      }
      

      #--- wenn neuer Monat angefangen Datensatz anlegen, sonst Counter hochzählen

      while(get_next("monat_statistik"))
      {
      if ($monat<$akt_monat) {put "monat:=$akt_monat jahr:=$akt_jahr Counter:=1","monat_statistik";}
      

      else {mod "monat==$akt_monat",["Counter","$Counter"+1],"monat_statistik";}
      }
      </perl>
      

     Antworten

    Beitrag von hempel (10 Beiträge) am Montag, 26.April.2004, 09:21.
    Re: Pageimpressionen zählen

      Hallo,
      erst mal Syntax vom put und mod überprüfen - s. a. Doku http://baseportal.de/cgi-bin/baseportal.pl?htx=/hilfe/baseportal/db_help&help=54

      dann hast du zweimal die ne while_get_next-Schleife auf die gleiche Datensatzmenge drin - das kann man zusammenfassen in eine...
      Der Zweig if ($tag<$akt_tag) dürfte nach deinem hier geposteten Codeabschnitt überhaupt nich ausgeführt werden, du holst ja nur die Datensätze, wo der $tag gleich $akt_tag ist (analog beim Monat) - somit sind die DS, wo $tag<$akt_tag ist gar nicht geholt worden und werden im while_get_next auch nicht mit ausgegeben....
      Bei DB-Aktionen innerhalb von while_get_next-Schleifen auf die gleiche DB ist es immer sinnvoll, Ergebnishashs fürs get zu nehmen, die anders als die DB selbst heissen, also bspw.
      get "tag==$akt_tag","tag_statistik", "tagdatensaetze";
      get "monat==$akt_monat","monat_statistik", "monatdatensaetze";
      die Datensaätze sind dann im while_get_next nicht über den DB-Namen sondern über den Ergebnishash-Namen ansprechbar also bspw. 
      while(get_next("tagdatensatz")){...tue was...}
      

     Antworten

    Beitrag von Fritz (15 Beiträge) am Montag, 26.April.2004, 16:36.
    Re: Pageimpressionen zählen

      Hallo Ruben,

      habe das ganze jetzt mal umgestrickt. tag_statistik läuft aber in der monat_statistik wird kein neuer DS angelegt. Das ($tag<$akt_tag) muss so bleiben sonst legt er jedesmal einen neuen DS an.
      Fliege bitte noch mal drüber. Danke

      <perl>
      # --- Datumsvariablen festlegen ---#
      $akt_tag= datum("jetzt","Tag");
      $akt_monat=datum("jetzt","Monat");
      $akt_jahr=datum("jetzt","Jahr");
      

      get "tag==$akt_tag","tag_statistik", "tagdatensaetze";
      get "monat==$akt_monat","monat_statistik", "monatdatensaetze";
      

      #--- löschen Datensatz wenn Monat nicht aktuell
      while(get_next("tagdatensaetze"))
      {
      if ($monat<$akt_monat){del "Id==$Id","tag_statistik";}
      }
      

      #--- wenn neuer Tag angefangen Datensatz anlegen, sonst Counter hochzählen
      {
      if ($tag<$akt_tag) {put ["tag", "$akt_tag", "monat", "$akt_monat", "Counter", "1"],"tag_statistik";}
      else {mod "tag==$akt_tag",["Counter","$Counter"+1],"tag_statistik";}
      }
      

      #--- wenn neuer Monat angefangen Datensatz anlegen, sonst Counter hochzählen
      while(get_next("monatdatensaetze"))
      {
      if ($monat<$akt_monat) {put ["monat", "$akt_monat", "jahr", "$akt_jahr", "Counter", "1"],"monat_statistik";}
      else {mod "monat==$akt_monat",["Counter","$Counter"+1],"monat_statistik";}
      }
      </perl>
      

     Antworten


     
 Liste der Einträge von 30601 bis 30751: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.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!