Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Besuche nach Wochentagen auswerten (https://www.delphipraxis.net/89879-%5Bphp%5D-besuche-nach-wochentagen-auswerten.html)

Matze 7. Apr 2007 19:58


[PHP] Besuche nach Wochentagen auswerten
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi zusammen :hi:

Ich erstelle mir mit folgendem Code, der seit einigen Monaten läuft, ein Array, dass mir die Anzahl der Besucher nach Wochentagen geordnet ausgibt (Montag: x Besucher, Dienstag: y Besucher, ...).

Code:
$stat_weekday_temp = [color=#0C0F96][b]array[/b][/color]();
[color=#0C0F96][b]foreach[/b][/color] ($arr_visit_stat_data [color=#0C0F96][b]as[/b][/color] $visit_stat_data)
{
   $date_info = getdate($visit_stat_data['visit_counter_date']);

   [color=#0C0F96][b]if[/b][/color] ([color=#0C0F96][b]isset[/b][/color]($stat_weekday_temp[$date_info['wday']]))
   {
      $stat_weekday_temp[$date_info['wday']] += $visit_stat_data['visit_counter_value'];
   }
   else
   {
      $stat_weekday_temp[$date_info['wday']] = 0;
   }
}

// reformat [color=#0C0F96][b]array[/b][/color]
// getdate(): sunday = 0, after reformatting: monday = 0
$stat_weekday = [color=#0C0F96][b]array[/b][/color] ();
for ($i = 0; $i < count($stat_weekday_temp) - 1; $i ++)
{
   [color=#0C0F96][b]if[/b][/color] ([color=#0C0F96][b]isset[/b][/color]($stat_weekday_temp[$i + 1]))
   {
      $stat_weekday[] = $stat_weekday_temp[$i + 1];
   }
}
$stat_weekday[] = $stat_weekday_temp[0];
Zur Erklärung hier der Aufbau der Arrays nach Ablauf des Codes:

$arr_visit_stat_data:
Code:
Array
(
    [0] => Array
        (
            [visit_counter_date] => 1175896800
            [visit_counter_value] => 122
        )

    [1] => Array
        (
            [visit_counter_date] => 1175810400
            [visit_counter_value] => 381
        )
...
$stat_weekday_temp:
Code:
Array
(
    [6] => 8313
    [5] => 8621
    [4] => 8759
    [3] => 8918
    [2] => 8919
    [1] => 8547
    [0] => 8307
)
$stat_weekday:
Code:
Array
(
    [6] => 8313
    [5] => 8621
    [4] => 8759
    [3] => 8918
    [2] => 8919
    [1] => 8547
    [0] => 8307
)
Es kann sein, dass der Code stimmt, doch ich bezweifel es stark, denn das aus den Daten erzeugte Diagramm sieht aus, wie im Anhang zu sehen. Normalerweise sind am Wochenende mehr Leute im Internet unterwegs als unter der Woche, doch bei mir ist es genau umgekehrt. Daher denke ich, muss ich irgendwo einen Denkfehler im Code haben. Seht ihr da einen?

Grüße und frohe Ostern wünscht
Matze

DGL-luke 7. Apr 2007 21:12

Re: [PHP] Besuche nach Wochentagen auswerten
 
also erstmal könntest du dir mit einem einzeiler sehr viel LOC und damit fehlerquellen sparen:

Code:
$stat_weekday[] = array_shift($stat_weekday);
schneidet das erste element vom array ab und pappt es hinten wieder dran.

Was du damit ersetzt sollte klar sein, deinen ganzen "reformat"-teil.

Daniel G 7. Apr 2007 21:23

Re: [PHP] Besuche nach Wochentagen auswerten
 
Zitat:

Zitat von Matze
Normalerweise sind am Wochenende mehr Leute im Internet unterwegs als unter der Woche

Äh... Wie kommst du zu dieser Annahme? Mal ein Blick in meinen AWStats-Log:

Zitat:

01.03.2007 103
02.03.2007 137
03.03.2007 107
04.03.2007 111

05.03.2007 109
06.03.2007 109
07.03.2007 123
08.03.2007 94
09.03.2007 107
10.03.2007 95
11.03.2007 75

(Wochenenden sind fett kursiv... ;)

DGL-luke 7. Apr 2007 21:28

Re: [PHP] Besuche nach Wochentagen auswerten
 
Noch was - hast du einen Unix-TImestamp drin?

Dann bekommst du den Wochentag per
Code:
date('w',$timestamp);

auch schön von 0-6, mit Sonntag=0.

Das scheint mir besser als deine komische if-struktur...

Matze 7. Apr 2007 22:11

Re: [PHP] Besuche nach Wochentagen auswerten
 
Mit den PHP-Datumsfunktionen muss ich mich mal näher auseinandersetzen, merke ich. *g* array_shift kannte ich auch noch nicht. :thumb: Wobei die Funktion wohl auch nichts anderes macht, könnte ich mir vorstellen.

Zitat:

Zitat von Daniel G
Äh... Wie kommst du zu dieser Annahme?

Ähm davon ging ich aus. Rücksprachen mit ein paar Leuten ergaben auch nichts, das dagegen spricht. Aber dann ist dies vielleicht gar nicht so. :gruebel:

Zitat:

Zitat von DGL-luke
Noch was - hast du einen Unix-TImestamp drin?

Jupp.

Zitat:

Zitat von DGL-luke
Das scheint mir besser als deine komische if-struktur...

Komische if-Struktur. Pff. :mrgreen: Das brauch ich aber so oder so, denke ich. Ich wüsste nicht, wie ich das umgehen soll, außer alle 7 Indizes zu Beginn anzulegen und mit 0 zu initialisieren.


Danke für eure Antworten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz