Autor Zpráva
DBoys
Profil *
Ahoj,mam problem mám <a href="<?php zkouknuti = ("update clanky set zkouknuti = zkouknuti+1 where by id......"); ?>">Clanek1</a> a poté co kliknu na odkaz se sice přičte +1 ke zkouknuti v databazi ale ne přímo po kliknuti ale ihned jak navštívím například stránku /clanky.html kde je Clanek1,Clanek2 atp... Muzete pomoct? díky
DBoys
Profil *
ještě se zeptám na tohle ale přiřadil bych to spíše do ajaxu, poté co teda čtenář klikne na ten članek1 tak jak se přidá +1 ke zkouknutí tak aby se mohlo přičíst zase až za 12 hodin to +1 a né že na to pokliká 10 díky
AM_
Profil
a) vkládej kód pomocí
b) takto PHP nefunguje. přečti si něco o principu PHP, bude se ti to hodit nejen pro tento případ. PHP funguje jako preprocesor, proto není možné do cíle odkazu vložit kus PHP kódu, který se při kliknutí na odkaz vykoná. Těžko se to vysvětluje pár slovy, přečti si, prosím, ten článek.

Až ho budeš mít přečtený, řeší se to tak, že se udělá odkaz s určitým parametrem, třeba:
<a href="stranka.php?pricti_zkouknuti=1">
a na stranka.php pokud je nastaven tento parametr se přičte zkouknutí.

ale ve tvém případě to nějak nechápu, máš stránku s článkem, tak by se vždy při jeho zobrazení mělo přičíst zkouknutí, a ne až potom, co uživatel na něco klikne, ne?

//ke tvému druhému dotazu: uložíš si někam (databáze?) pár IP - čas posledního zkouknutí. A vždy, než přičteš zkouknutí, ověříš, zda z daného IP nebylo v posledních 12ti hodinách už jednou zkouknuto.
DBoys
Profil *
až klikne na ten članek (rozklikneho)
AM_
Profil
no tak pak ten update dej do souboru s článkem, a ne do rozcestníku, že... a přečetl jsi si ten článek, co jsem poslal?
DBoys
Profil *
ano.. :)
DBoys
Profil *
No tak vyřešil jsem všechno až na to zkouknutí na čas prostě nevím jak udělat aby se ta ip v databázi smazala například po 60 minutách..
Keeehi
Profil
DBoys:
ip v databázi smazala například po 60 minutách
- takto ne

Do databáze uložíš do dvou sloupců IP a ČAS
Když někdo vleze na stránku s článkem, pokusíš se v databázi vyhledat jeho ip. Můžou nastat 3 možnosti.
1) IP nenajdeš - do databáze vložíš jeho ip a aktuální čas a zvětšíš počítadlo o 1
2) IP najdeš a ČAS je starší než jedna hodina - v databázi provedeš update času na aktuální na řádku, kde je jeho ip a zvětšíš počítadlo o 1
3) IP najdeš a ČAS není starší než hodina - neprovedeš nic :)
DBoys
Profil *
A jak zapíši zda je čas starší nebo menší než 1 hodina? Pošlu tam aktuální čas a ten mám porovnat s aktuálním časem? Ale zase další den když bych to teda udělal takhle tak by například ten čas 21:00 byl následující den v 20:00 menší a nezapsalo by se to..?
Keeehi
Profil
DBoys:
Použij na typ sloupce TIMESTAMP.

NOW()-ČAS<3600 - ještě to není hodina
NOW()-ČAS>3600 - už je to přes hodinu
DBoys
Profil *
a jak definuji funkci now()?
Keeehi
Profil
DBoys:
a jak definuji funkci now()?
Ta už v mysql je.

Případně, pokud to budeš chtít testovat až v PHP, tak použiješ funkci time();
DBoys
Profil *
Fatal error: Call to undefined function now() - :-(
Keeehi
Profil
DBoys:
Ještě jednou si přečti [#12].
DBoys
Profil *
Vyřešeno všem díky :)

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:

0