Autor Zpráva
Grave
Profil *
Vím, že se to sem moc nehodí, ale jak udělat počítadlo, aby počítalo pouze jednou za den IP, plus vypisovalo nějak celkovy počet navštěvníků a počet navštěvníků ten den . . . Doufam, že se tu někdo kdo mi poradí. Je mi jasné že to bude přes mysql, jenže netuším jak to zapsat jako php scipt pravě . . . Kdyžtak děkuji za odpověd.
Grave
Profil *
Kdyžtak stránka, kam by to mělo přijit je http://www.gravegame.net
Grave
Profil *
Tak pocitadlo mam, ale haze mi to chybu a ja netusim proc :-(


<?
$spojeni = mysql_connect("mysql5-3","kniha.101727","heslo") or die(mysql_error());
mysql_select_db("kniha_101727", $spojeni); ?>


<?
//načteme datum
$den = date(d);
$mesic = date(m);
$rok = date(Y);

$datumD = $rok . $mesic . $den;
//zjištění IP adresy

$ipactual = $_SERVER['REMOTE_ADDR'];
//zjistíme si datum uložených položek a aktuální datum s ním porovnáme
$vlozit = "SELECT *
FROM pocitadlo
LIMIT 1";
$dotaz = mysql_query($vlozit);
while($r = mysql_fetch_array($dotaz)) {
//jestliže se data liší, uložíme do tabulky "pristupy" počet záznamů z tabulky "pristupy"

if (($datumD - $r[datum]) != 0) {
$vlozit = "SELECT ip FROM pocitadlo";
$dotaz = mysql_query ($vlozit);
$vysledek = mysql_num_rows($dotaz);

$vlozit = "INSERT INTO pristupy (pocet, datum) VALUES ('$vysledek', '$r[datum]')";
$dotaz = mysql_query ($vlozit);
//vymažeme záznamy z tabulky "pocitadlo"

$vlozit = "TRUNCATE TABLE pocitadlo";
$dotaz = mysql_query ($vlozit);
}
}
//zjistení zda je uz daná IP uložená v DB
$vlozit = "SELECT ip
FROM pocitadlo
WHERE ip = '$ipactual'";
$vysledky = mysql_query ($vlozit);
$vraci = mysql_num_rows($vysledky);
//uložení záznamu do tabulky, jestliže daná IP ještě v seznamu není

if ($vraci == 0) {
$vlozit = "INSERT INTO pocitadlo (ip, datum)
VALUES ('$ipactual', '$datumD')";
mysql_query ($vlozit) or die(mysql_error());
?>
<?
//počet záznamů aktuální den.. tj. počet řádků z tabulky "pocitadlo"
$vlozit = "SELECT datum FROM pocitadlo";
$vysledky = mysql_query ($vlozit) or die (mysql_error());
$navstevydnes = mysql_num_rows($vysledky);


//vypsání 7 záznamů z tabulky "pristupy".. taková malá historie
echo "<h4>Statistika přístupů</h4><p><b>Dnes:</b> $navstevydnes</p></div><h4>Počet přístupů za posledních 7 dní:</h4>";
$vlozit = "SELECT *
FROM pristupy
ORDER BY datum
DESC
LIMIT 0, 7";
$vysledky = mysql_query ($vlozit) or die (mysql_error());

while ($celkem = mysql_fetch_array($vysledky)) {
extract($celkem);
echo "<p> $datum - <b>$pocet</b></p>";

} ?>


Databáze co mam udělané sou pocitadlo : ip varchar 255 primarni not null porovnani 1250_czech_cs, datum int 8 not null
pristupy : pocet int 4 not null , datum int 8 not null primarni
Grave
Profil *
A chyba je Parse error: syntax error, unexpected $end
Moab
Profil
tohle
if ($vraci == 0) {
nemáš uzavřený
Grave
Profil *
JJ diky moc, i kdyz se zatim nezobrazuje statistiky za poslednich 7 dni, coz doufam ze se zmeni
Grave
Profil *
Tak pocitadlo funguje, pocita jak za den, tak za poslednich 7 dni, a jeste bych ho chtěl rozšířit o celkový počet návštěvníků . . . jenže před číslem za poslednich 7 dní, se mi zobrazuje číslo co mi nic neříká a hlavně toto číslo je hafo velky (20090116) . . . nevíte někdo čím to je? případně co je to za číslo? děkuji za odpověd
Grave
Profil *
Dobry, uz mi doslo co to je, je to datum . . .
imploder
Profil
//zjistíme si datum uložených položek a aktuální datum s ním porovnáme 
$vlozit = "SELECT * 
FROM pocitadlo 
LIMIT 1"; 
$dotaz = mysql_query($vlozit); 
while($r = mysql_fetch_array($dotaz)) { 
//jestliže se data liší, uložíme do tabulky "pristupy" počet záznamů z tabulky "pristupy"

Tahle část kódu mi připadá, že rozhodně nedělá, co by měla. Vybere se právě 1 záznam tabulky a pak se (logicky to musí být jednou, pokud tabulka není prázdná) provede ten cyklus a datum toho záznamu se použije:
$vlozit = "INSERT INTO pristupy (pocet, datum) VALUES ('$vysledek', '$r[datum]')";
Grave
Profil *
„1234567 //zjistíme si datum uložených položek a aktuální datum s ním porovnáme
$vlozit = "SELECT *
FROM pocitadlo
LIMIT 1";
$dotaz = mysql_query($vlozit);
while($r = mysql_fetch_array($dotaz)) {
//jestliže se data liší, uložíme do tabulky "pristupy" počet záznamů z tabulky "pristupy"“
Tahle část kódu mi připadá, že rozhodně nedělá, co by měla. Vybere se právě 1 záznam tabulky a pak se (logicky to musí být jednou, pokud tabulka není prázdná) provede ten cyklus a datum toho záznamu se použije:
1 $vlozit = "INSERT INTO pristupy (pocet, datum) VALUES ('$vysledek', '$r[datum]')";


Ted sem asi uplne nepochopil
Antorr
Profil *
<? 
$spojeni = mysql_connect("mysql5-3","kniha.101727","heslo") or die(mysql_error()); 
mysql_select_db("kniha_101727", $spojeni); ?> 


<? 
//načteme datum 
$den = date(d); 
$mesic = date(m); 
$rok = date(Y); 

$datumD = $rok . $mesic . $den; 
//zjištění IP adresy 

$ipactual = $_SERVER['REMOTE_ADDR']; 
//zjistíme si datum uložených položek a aktuální datum s ním porovnáme 
$vlozit = "SELECT * 
FROM pocitadlo 
LIMIT 1"; 
$dotaz = mysql_query($vlozit); 
while($r = mysql_fetch_array($dotaz)) { 
//jestliže se data liší, uložíme do tabulky "pristupy" počet záznamů z tabulky "pristupy" 

if (($datumD - $r[datum]) != 0) { 
$vlozit = "SELECT ip FROM pocitadlo"; 
$dotaz = mysql_query ($vlozit); 
$vysledek = mysql_num_rows($dotaz); 

$vlozit = "INSERT INTO pristupy (pocet, datum) VALUES ('$vysledek', '$r[datum]')"; 
$dotaz = mysql_query ($vlozit); 
//vymažeme záznamy z tabulky "pocitadlo" 

$vlozit = "TRUNCATE TABLE pocitadlo"; 
$dotaz = mysql_query ($vlozit); 
} 
} 
//zjistení zda je uz daná IP uložená v DB 
$vlozit = "SELECT ip 
FROM pocitadlo 
WHERE ip = '$ipactual'"; 
$vysledky = mysql_query ($vlozit); 
$vraci = mysql_num_rows($vysledky); 
//uložení záznamu do tabulky, jestliže daná IP ještě v seznamu není 

if ($vraci == 0) { 
$vlozit = "INSERT INTO pocitadlo (ip, datum) 
VALUES ('$ipactual', '$datumD')"; 
mysql_query ($vlozit) or die(mysql_error()); 
?> 
<? 
//počet záznamů aktuální den.. tj. počet řádků z tabulky "pocitadlo" 
$vlozit = "SELECT datum FROM pocitadlo"; 
$vysledky = mysql_query ($vlozit) or die (mysql_error()); 
$navstevydnes = mysql_num_rows($vysledky); 


//vypsání 7 záznamů z tabulky "pristupy".. taková malá historie 
echo "<h4>Statistika přístupů</h4><p><b>Dnes:</b> $navstevydnes</p></div><h4>Počet přístupů za posledních 7 dní:</h4>"; 
$vlozit = "SELECT * 
FROM pristupy 
ORDER BY datum 
DESC 
LIMIT 0, 7"; 
$vysledky = mysql_query ($vlozit) or die (mysql_error()); 

while ($celkem = mysql_fetch_array($vysledky)) { 
extract($celkem); 
echo "<p> $datum - <b>$pocet</b></p>"; 

} ?>


Jak k tomu dodělat celkový počet návštěvníků?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: