Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 13
Seite [1]
aschti


Poststar





Beiträge: 778
# Thema - 16.07.2010 um 13:50 Uhr
hallo @ all,

ich helfe grad ein kollege an einem projekt, soweit ist alles fertig (gott sei dank^^).
ich stehe nur schon seit gestern mit der php funktion mktime auf kriegsfuß.

es handelt sich um einen einfachen besucher zaehler der über php & sql läuft.

zeile 5 & 6 klappen wie gewünscht in der späteren ausgabe, allerdings hab ich auch nach langen googlen und nachlesen nicht rausbekommen wir ich den zusatz bei $m $t $j setzten muss so das er mir den monat/ vormonat / jahr / vorjahr bringt.

für ratschläge wäre ich sehr dankbar

hier mal ein code auszug:

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
1. / 2. / ... 
 $t date('d');
$m date('m');
$j date('Y');

$datum_heute date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_gestern date('d.m.Y',mktime(0,0,0,$m,$t-1,$j));

$datum_monat date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vormonat date('d.m.Y',mktime(0,0,0,$m,$t,$j));

$datum_jahr date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vorjahr date('d.m.Y',mktime(0,0,0,$m,$t,$j));


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !
Inaktiv
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 1 - 16.07.2010 um 14:17 Uhr
besser ist:

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
1. / 2. / ... 
 $now time();
$datum_heute date('d.m.Y'$now);
$datum_gestern date('d.m.Y'strtotime('yesterday'$now));

$datum_monat date('m'$now);
$datum_vormonat date('m'strtotime('1 month ago'$now));

$datum_jahr date('Y'$now);
$datum_vorjahr date('Y'strtotime('1 year ago'$now));


Zuletzt editiert von Mindcrime am 16.07.2010 um 14:21 Uhr (2x Editiert)
Inaktiv
|
aschti
Thread-Ersteller


Poststar





Beiträge: 778
# Antwort: 2 - 16.07.2010 um 14:44 Uhr
erstmal danke für die rasche antwort, allerdings will es mit strtotime auch nicht.

ich habe in der sql verschiedene werte vorgegeben um zu schaun das alles funktioniert, was ja leider nicht der fall ist.

datum - besucher

15.07.2010 - 21
14.07.2010 - 200
16.07.2010 - 2
13.06.2010 - 50
13.07.2009 - 400

heute/ gestern - stimmt bei beiden script varianten.

monat müsste = 223
vormonat müsste = 50
jahr müsste = 273
vorjahr müsste = 400

allerdings bringt er mir 0 als wertausgabe bei den vier.

bsp. ansicht - http://aschti.de/1-test/counter.php


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !


Zuletzt editiert von aschti am 16.07.2010 um 14:45 Uhr (1x Editiert)
Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 3 - 17.07.2010 um 17:26 Uhr
Wenn du mal dein counter.php als quell anzeige zeigen wurdest, wuesste wir vielleicht was du ueberhaupt willst. Du fragst mich um "datums zu zeigen", nicht um die "stats von bestimmten zeitraum zu zeigen", das sind 2 total verschiedene dinge...


Inaktiv
|
aschti
Thread-Ersteller


Poststar





Beiträge: 778
# Antwort: 4 - 18.07.2010 um 14:42 Uhr
hi mindcrime, sorry wenn ich was verdreht oder so hab.

also die live ansicht ist hier: http://aschti.de/1-test/counter

soweit funzt halt alles bis:
*Besucher Monat: 0
*Besucher Vormonat: 0
*Besucher Jahr: 0
*Besucher Vorjahr: 0

hier ist meine counter_stats.php

counter_stats.php +-
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
1. / 2. / ... 
<?php
include 'connect.php';

$ip $_SERVER["REMOTE_ADDR"];

$t date('d');
$m date('m');
$j date('Y');

$datum_heute date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_gestern date('d.m.Y',mktime(0,0,0,$m,$t-1,$j));

$datum_monat date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vormonat date('d.m.Y',mktime(0,0,0,$m,$t,$j));

$datum_jahr date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vorjahr date('d.m.Y',mktime(0,0,0,$m,$t,$j));


$ablaufzeit time() - 86400;
mysql_query("DELETE FROM `counter_ip` WHERE `zeit` <= " $ablaufzeit "");

if (!
mysql_fetch_row(mysql_query("SELECT `ip` FROM `counter_ip` WHERE `ip` = '" $ip "'"))) {
 
mysql_query("INSERT INTO `counter_ip` (`ip`,`zeit`) VALUES ('" $ip "','" time() . "')");

 
mysql_unbuffered_query("UPDATE `counter_stats` SET `besucher` = `besucher` + 1 WHERE `datum` = '" $datum_heute "'");
 if (
mysql_affected_rows()==0) {
  
mysql_query("INSERT INTO `counter_stats` (`datum`,`besucher`) VALUES ('" $datum_heute "','1');");
 }
}

list(
$besucher_heute) = mysql_fetch_row(mysql_query("SELECT `besucher` FROM `counter_stats` WHERE `datum` = '" $datum_heute "'"));
list(
$besucher_gestern) = mysql_fetch_row(mysql_query("SELECT `besucher` FROM `counter_stats` WHERE `datum` = '" $datum_gestern "'"));

list(
$besucher_monat) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `counter_stats` WHERE `datum` = '" $datum_monat "'"));
list(
$besucher_vormonat) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `counter_stats` WHERE `datum` = '" $datum_vormonat "'"));

list(
$besucher_jahr) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `counter_stats` WHERE `datum` = '" $datum_jahr"'"));
list(
$besucher_vorjahr) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `counter_stats` WHERE `datum` = '" $datum_vorjahr"'"));

list(
$besucher_gesamt) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `counter_stats`"));

$counter_heute 'Besucher Heute: ' number_format($besucher_heute0","".") . ' <br>';
$counter_gestern 'Besucher Gestern: ' number_format($besucher_gestern0","".") . ' <br><br>';

$counter_monat '*Besucher Monat: ' number_format($besucher_monat0","".") . ' <br>';
$counter_vormonat '*Besucher Vormonat: ' number_format($besucher_vormonat0","".") . ' <br><br>';

$counter_jahr '*Besucher Jahr: ' number_format($besucher_jahr0","".") . ' <br>';
$counter_vorjahr '*Besucher Vorjahr: ' number_format($besucher_vorjahr0","".") . ' <br><br>';

$counter_gesamt 'Besucher Gesamt: ' number_format($besucher_gesamt0","".") . ' <br>';

mysql_close($connect); 

?>


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !


Zuletzt editiert von aschti am 18.07.2010 um 14:44 Uhr (2x Editiert)
Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 5 - 20.07.2010 um 11:00 Uhr
Wie ich schon erwaehnt habe, dus willst queries zwisschen einen bestimmten zeitraum.
Deine SQL queries sind komplett falsch... Deswegen bekommst du auch keine treffer...


Inaktiv
|
aschti
Thread-Ersteller


Poststar





Beiträge: 778
# Antwort: 6 - 20.07.2010 um 19:29 Uhr
ok - dann geh ich die sache nochmal zeile für zeile durch.
danke für den gedanken anschubser - werde über erfolg oder niederlage berichten ^^


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !


Inaktiv
|
aschti
Thread-Ersteller


Poststar





Beiträge: 778
# Antwort: 7 - 17.09.2010 um 21:21 Uhr
so habe nun mal mich mit der sache wieder beschäftigt - da alles andere nun läuft.

was ich nur nicht verstehe ist in wie fern der querie falsch ist für mich klingt er logisch für die aktion:

bsp. aus code von oben:
 
1.
1. / 2. / ... 
 list($besucher_vorjahr) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `counter_stats` WHERE `datum` = '" $datum_vorjahr"'"));


ich könnte mir nur vorstellen das die sum nicht stimmt allerdings zusammenzählen muss er ja.

hättet ihr da vllt eine gedanken stütze für mich ?

danke - gruß aschti


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !


Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 8 - 17.09.2010 um 22:09 Uhr
Wenn du eine zeit abschnitt waehlst, hat man immer ein start datum und ein ende datum. Und du suchst alles zwisschen diese zwei zeit punkte. Also ist der query meistens in der form:


SELECT SUM(besucher) FROM statistik_tabelle WHERE datum >= start-datum AND datum < ende-datum


Inaktiv
|
aschti
Thread-Ersteller


Poststar





Beiträge: 778
# Antwort: 9 - 17.09.2010 um 23:06 Uhr
also von der theorie her :
 
1.
1. / 2. / ... 
  list($besucher_vorjahr) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `counter_stats WHERE `datum` => '" $datum_monat "' AND =< '" $datum_heute "' "));

in der praxis hab ich n denk fehler ^^


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !


Inaktiv
|
astmaih


Rock the board




Beiträge: 95
# Antwort: 10 - 18.09.2010 um 10:03 Uhr
16.07.2010 um 13:50 Uhr - aschti:

 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
1. / 2. / ... 
 $t date('d');
$m date('m');
$j date('Y');

$datum_heute date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_gestern date('d.m.Y',mktime(0,0,0,$m,$t-1,$j));

$datum_monat date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vormonat date('d.m.Y',mktime(0,0,0,$m,$t,$j));

$datum_jahr date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vorjahr date('d.m.Y',mktime(0,0,0,$m,$t,$j));


Was mir da auffällt: $datum_heute, $datum_monat, $datum_vormonat, $datum_jahr und $datum_vorjahr haben alle das gleiche Datum. gerade bei Vormonat und Vorjahr hast du keine Anpassung in mktime vorgenommen.

Wie wird denn das Datum der Besucher in der Datenbank abgespeichert? auch in dieser String Form, oder als Zeitstempel?


Zuletzt editiert von astmaih am 18.09.2010 um 10:03 Uhr (1x Editiert)
Inaktiv
|
aschti
Thread-Ersteller


Poststar





Beiträge: 778
# Antwort: 11 - 18.09.2010 um 20:07 Uhr
hallo & danke für die hilfe,

ich nehme an den code den eben genannt hast ist n weng älter- bzw das vorgänger modell,

also derzeit schaut mein code so aus:

php code... +-
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
1. / 2. / ... 
<?php
include 'setup.php';

include 
'system/db/connect.php';

$ip $_SERVER["REMOTE_ADDR"];

/*
$t = date('d');
$m = date('m');
$j = date('Y');

$datum_heute = date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_gestern = date('d.m.Y',mktime(0,0,0,$m,$t-1,$j));

$datum_monat = date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vormonat = date('d.m.Y',mktime(0,0,0,$m,$t,$j));

$datum_jahr = date('d.m.Y',mktime(0,0,0,$m,$t,$j));
$datum_vorjahr = date('d.m.Y',mktime(0,0,0,$m,$t,$j));

*/

$now time();
$datum_heute date('d.m.Y'$now);
$datum_gestern date('d.m.Y'strtotime('yesterday'$now));

$datum_monat date('m'$now);
$datum_vormonat date('m'strtotime('1 month ago'$now));

$datum_jahr date('Y'$now);
$datum_vorjahr date('Y'strtotime('1 year ago'$now));

$ablaufzeit time() - 86400
mysql_query("DELETE FROM `as_counter_ip` WHERE `zeit` <= " $ablaufzeit "");

if (!
mysql_fetch_row(mysql_query("SELECT `ip` FROM `as_counter_ip` WHERE `ip` = '" $ip "'"))) {
 
mysql_query("INSERT INTO `as_counter_ip` (`ip`,`zeit`) VALUES ('" $ip "','" time() . "')");

 
mysql_unbuffered_query("UPDATE `as_counter_stats` SET `besucher` = `besucher` + 1 WHERE `datum` = '" $datum_heute "'");
 if (
mysql_affected_rows()==0) {
  
mysql_query("INSERT INTO `as_counter_stats` (`datum`,`besucher`) VALUES ('" $datum_heute "','1');");
 }
}

list(
$besucher_online) = mysql_fetch_row(mysql_query("SELECT COUNT(*) AS `ip` FROM `as_counter_ip`"));

list(
$besucher_heute) = mysql_fetch_row(mysql_query("SELECT `besucher` FROM `as_counter_stats` WHERE `datum` = '" $datum_heute "'"));
list(
$besucher_gestern) = mysql_fetch_row(mysql_query("SELECT `besucher` FROM `as_counter_stats` WHERE `datum` = '" $datum_gestern "'"));

list(
$besucher_monat) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `as_counter_stats` WHERE `datum` => '" $datum_monat "' AND =< '" $datum_heute "' "));
list(
$besucher_vormonat) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `as_counter_stats` WHERE `datum` = '" $datum_vormonat "'"));

list(
$besucher_jahr) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `as_counter_stats` WHERE `datum` = '" $datum_jahr"'"));
list(
$besucher_vorjahr) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `as_counter_stats` WHERE `datum` = '" $datum_vorjahr"'"));

list(
$besucher_gesamt) = mysql_fetch_row(mysql_query("SELECT sum(`besucher`) FROM `as_counter_stats`"));

$counter_online 'Besucher Online: ' . ($besucher_online);
$counter_heute 'Besucher Heute: ' number_format($besucher_heute0","".");
$counter_gestern 'Besucher Gestern: ' number_format($besucher_gestern0","".");

$counter_monat '*Besucher Monat: ' number_format($besucher_monat0","".");
$counter_vormonat '*Besucher Vormonat: ' number_format($besucher_vormonat0","".");

$counter_jahr '*Besucher Jahr: ' number_format($besucher_jahr0","".");
$counter_vorjahr '*Besucher Vorjahr: ' number_format($besucher_vorjahr0","".");

$counter_gesamt 'Besucher Gesamt: ' number_format($besucher_gesamt0","".");

mysql_close($connect); 

?>



in zeile51 hab ich das mit dem start end versucht - leider ohen wirkung.

das datum wird direkt in die zelle so eingetragen bsp. 18.09.2010

gruß aschti


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !


Inaktiv
|
Mindcrime


Geekboy





Beiträge: 1155
# Antwort: 12 - 18.09.2010 um 20:13 Uhr
Erstmals solltest du bevor du anfaengst zu coden mal einige buecher und tutorials lesen. SQL und PHP...

=< ???
Und les deneben mal dein eigenes SQL statement und vergleich das mal mit mein code...


Inaktiv
|
aschti
Thread-Ersteller


Poststar





Beiträge: 778
# Antwort: 13 - 18.09.2010 um 20:20 Uhr
ich hab mich die letzten monate zu arg in linux und server vertieft, und einiges vergessen was grundregeln in php & sql angeht das geb ich zu. hab das lernen mit php ziemlich schleifen lassen.

**schuldig** machen wir so.

verrat mir bitte keine lösung. ich werd jetzt im urlaub wieder mich intensiver mit php & sql beschäftigen. bin halt ziemlich vergesslich ^^ ( liegt vllt am whiskey ) wenn ich die lösung hab und sie funktioniert gebe ich bescheid.

so lern ichs besser denk ich

edit:

nach dem ich mir jetzt eben mein gutes buch von galileo computing, geschnappt habe und mal noch den ganzen grundwissen kram durch gelesen hab klappts ^^ naja dafür sind wohl bücher da ^^ wer lesen kann ... oder wie war das ^^

also danke für alles ^^ (keine sorge ich tu weiter lesen & üben)


------------------
p.s. die oben zufindenen Rechtschreibfehler sind eine gratis beigabe ^^

www.DemolitionGroup.de
It's Time to Fight - Play Hard & Fair !


Zuletzt editiert von aschti am 18.09.2010 um 23:00 Uhr (1x Editiert)
Inaktiv
|
Antworten: 13
Seite [1]


Sie müssen sich registrieren, um zu antworten.