Hits / Tag auf 24h Durchschitt ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hits / Tag auf 24h Durchschitt ändern

    Der alte Code:
    PHP-Code:
    <?php 

    $verbindung
    =mysql_connect($host,$user,$pass); 
    $abz '0'
    $topnr '10'
    $id++; 
    // allgemeine Zeitvariablen 
    $zeitpunkt=time(); 
    $zp24=getdate($zeitpunkt); 
    $zptoday=mktime(0,0,0,$zp24[mon],$zp24[mday],$zp24[year]); 
    if (
    $zp24[wday]==0
       
    $wday=6
    else 
        
    $wday=$zp24[wday]-1
    $zpdel=$zptoday-(($wday+7)*108000); 
    ///////////////////////// 
    // Zeitvariablen für den ausgewählten Tag 
    $tagheute=$wday+8
    if (!
    $tag
       
    $tag=$tagheute
    $zptag=$zpdel+($tag-1)*108000
    $zptagende=$zptag+108000;
    Die Ausgabe:
    PHP-Code:
     echo "<tr><td>\n"
    // Ermittlung der Banner /////////////////////////////////////////// 
    if($verbindung) { 
    if(
    mysql_select_db($db_name,$verbindung)) {
     
    $sql="SELECT url, beschreibung, titel,heute,gesamt 
    FROM wmseiten
    WHERE topliste='ja' and time>='
    $zptag
    and time<'
    $zptagende' ORDER BY heute DESC"
    $ergebnis=mysql_query($sql$verbindung); 
    if(
    $ergebnis) { 
    while(
    $zeile =mysql_fetch_array($ergebnis)) { 
    $url=$zeile["url"]; 
    $beschreibung=$zeile["beschreibung"]; 
    $banner=$zeile["banner"]; 
    $titel=$zeile["titel"]; 
    $gesamt1=$zeile["gesamt"]; 
    $heute=$zeile["heute"]; 
    $nr++; 
    if ((
    $nr 10) && ($nr <= 50)) { 
    if (
    $refanz[$i] != "0") { 
    echo 
    "bla la bla  \n"



    mysql_free_result($ergebnis); 
    } else { 
    echo 
    "$sql falsch"



    mysql_close($verbindung); 

    ?> 
    Der Ansatz:
    PHP-Code:
     SELECT ... , total / ((unix_timestamp(now()) - unix_timestamp
    (starttime)) / 86400)


    BESUCHER_TOTAL / ((UNIX_TS_NOW UNIX_TS_StartTime) / 86400
    EDIT:
    line break sponsored by asp2php
    Zuletzt geändert von asp2php; 31.08.2004, 19:03.

  • #2
    und die Frage?

    Kommentar


    • #3
      und die Frage?
      Wie realisier ich das?

      Kommentar


      • #4
        Wie realisier ich das?
        formulier doch bitte dein anliegen etwas genauer ...

        - wie ist dein jetziger stand, was passiert ...
        - was willst du erreichen

        was meinst du zb. mit 24h durchschnitt?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          - wie ist dein jetziger stand, was passiert ...
          - was willst du erreichen

          was meinst du zb. mit 24h durchschnitt?
          Jetzt ist es so, das die Hits um 0:00 Uhr resetet werden.
          Alle fangen wieder bei 0 an, und wer keine Hits hat, wird auch nicht angezeigt.
          Nun wollte ich das so haben, das die durchschnittlichen Hits angezeigt
          werden, die in 24h entstanden sind. Dadurch bleibt die Liste immer fast gleich und vergrößert
          sich nicht den ganzen Tag über und ist dann Nachts wieder weg

          Kommentar


          • #6
            Jetzt ist es so, das die Hits um 0:00 Uhr resetet werden.
            Fang doch erstmal an und beschreibe, was das Skript grundsätzlich macht. Ich hab auf jeden Fall keine Lust, die Funktionalität aus dem Code raus zu interpretieren.

            Also á la... "Ich hab ein Skript, das macht dieses und jenes und zeigt mir das Ergebnis so und so an. Wie kann ich es jetzt so umschreiben, daß...."

            Kommentar


            • #7
              Festlegung der allgemeinen Variablen:
              PHP-Code:
              // allgemeine Zeitvariablen 
              $zeitpunkt=time(); 
              $zp24=getdate($zeitpunkt); 
              $zptoday=mktime(0,0,0,$zp24[mon],$zp24[mday],$zp24[year]); 
              if (
              $zp24[wday]==0
                 
              $wday=6
              else 
                  
              $wday=$zp24[wday]-1
              $zpdel=$zptoday-(($wday+7)*108000); 
              Das nun bestimmt die Variable für den Tag bis zum Zeitpunkt 0:00

              PHP-Code:
              ///////////////////////// 
              // Zeitvariablen für den ausgewählten Tag 
              $tagheute=$wday+8
              if (!
              $tag
                 
              $tag=$tagheute
              $zptag=$zpdel+($tag-1)*108000
              $zptagende=$zptag+108000
              Nun will ich aus den vorhandenen Variablen den Durchschnitt / Tag ermitteln.

              Kommentar


              • #8
                Ich blicks immer noch nicht. Was ist das? Ein Counter? Eine Toplist? Oder wie?

                Kommentar


                • #9
                  Das ist die Topliste eines Counters
                  Und da will ich durch eine Rechenoperation die
                  Tageswerte auf Durchschnittswerte setzen.

                  Kommentar


                  • #10
                    Original geschrieben von ollimagic
                    Und da will ich durch eine Rechenoperation die
                    Tageswerte auf Durchschnittswerte setzen.
                    du willst also jeden tag um 0 uhr den zähler auf den neuen durchschnittswert setzen?

                    neuer_durchschnitt = (alter_durchschnitt + aktueller_tageswert) / 2
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Am liebsten wären mir ja wochen oder Monatsdurchschnittswerte.
                      Weiss aber nicht, wie ich die am Besten ermitteln kann.

                      In dieser Datei wird es mir ja vorgemacht, aber ich kann diese
                      Informationen nicht in die obige einfügen.
                      $durchschnitt ist der Wert den ich bräuchte.

                      PHP-Code:
                      $id++;
                      $zeitpunkt=time();
                      $zp24=getdate($zeitpunkt);
                      $zptoday=mktime(0,0,0,$zp24[mon],$zp24[mday],$zp24[year]);
                      if (
                      $zp24[wday]==0)
                         
                      $wday=6;
                      else
                          
                      $wday=$zp24[wday]-1;
                      $zpdel=$zptoday-(11*86400);

                      if (!
                      $woche)
                         
                      $woche=2;
                      $zpwochestart=($zpdel+($woche-4)*7*86400)-345600;
                      $zpwocheende=$zpwochestart+26*864000;

                      $verbindung=mysql_connect($host,$user,$pass);
                      if(
                      $verbindung) {
                      if(
                      mysql_select_db($db_name,$verbindung)) {
                      $sql="SELECT titel,url FROM wmseiten WHERE sid='$sid'";
                      $ergebnis=mysql_query($sql$verbindung);
                      if(
                      $ergebnis) {
                      while(
                      $zeile =mysql_fetch_array($ergebnis)) {
                      $titel=$zeile["titel"];
                      $url=$zeile["url"];
                      }
                      mysql_free_result($ergebnis);
                      } else {
                      echo 
                      "$sql falsch";
                      }
                      }
                      }

                      mysql_select_db($db_name,$verbindung);
                      $userwoche=mysql_query("select count($id) from statistik where time>
                      ='
                      $zpwochestart' and time<'$zpwocheende'");
                      $useranzahlwoche=mysql_result($userwoche,0,0);
                      mysql_free_result($userwoche);

                      $usermax=0;
                      for (
                      $j=0;$j<=29;$j++) {

                       
                      $zpts=$zpwochestart+$j*86400;
                       
                      $zpte=$zpwochestart+($j+1)*86400;
                       
                      $zaehlen=mysql_query("select count($id) from statistik where 
                      time>='
                      $zpts' and time<'$zpte'");
                       
                      $anzahl=mysql_result($zaehlen,0,0);
                       
                      mysql_free_result($zaehlen);
                       
                      $anzahltag[$j]=$anzahl;
                      if (
                      $anzahl '0') {
                      $tages++;
                      }

                       if (
                      $anzahl>$usermax)
                          
                      $usermax=$anzahl;

                       if ((
                      $anzahl $usermin) && ($anzahl != '0') && ($zpte $zeitpunkt))  {
                          
                      $usermin=$anzahl;
                       }
                      }

                      $durchschnitt ceil($useranzahlwoche/$tages); 

                      Kommentar


                      • #12
                        So ich denke ein Gesamtdurchschnitt reicht völlig.

                        Ich kann die Werte aus der Tabelle: time nehmen
                        das wäre z.B. 1094044780
                        und durch die Gesamtbesucherzahl: z.B. 1374
                        teilen.

                        Allerdings weiss ich nun nicht, wie ich daraus einen vernünftigen Wert bekomme.

                        Rauskommen müsste was zwischen 20 und 30

                        Registrierdatum des Users war 06.07.04

                        Dann habe ich noch einen Wert namens Zeit mit dem Wert: 1089151463

                        Zuletzt geändert von ollimagic; 01.09.2004, 16:56.

                        Kommentar

                        Lädt...
                        X