NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Zapisovanie času do DB a jeho úprava

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Marek Burda
Člen
Avatar
Marek Burda:2.5.2017 20:23

Zdravím. Mám problém - chcem uživateľom môjho webu sprístupnťi možnosť že za body na stránke si budú môcť zakúpiť membership. Riešim to teda časovo. Človek si zakúpi membership. Čas ktorý je sa mu uloží do db. Do dalšieho stlpca v db sa uloží další záznam a to je čas + napríklad 3600 sekúnd čo je hodina. Toto zapisovanei funguje. No neskrô tam mám kódf ktorý kontorluje a maže membership všetkým ktorý majú čas menší ako ten ktorý aktuálne je. Čiže chcem nastaviť aby sa im po ohidne membership zmazal. Priradzujem kódy. Problé mje ten že to máže randomne a nie presne p ohodine. Niekedy to zmaže hned po minúte. Neviete kde môže byť problém ?

Kontorlovanie časov + zmazanie udajov ak membership vypršal :

$membership  = "UPDATE axax SET membership='0' , memb_time='0' WHERE $time>'".$vypis1["memb_time"]."'";
mysql_query($membership) or die(mysql_error());

Pridanie času:

$timem       = time();
$timem_check = $timem+3600;
$update  = "UPDATE xaxax SET membership='1' , memb_time='$timem_check'  WHERE id='".$_SESSION["id"]."'";
mysql_query($update) or die(mysql_error());

Ďakujem za pomoc

Editováno 2.5.2017 20:24
 
Odpovědět
2.5.2017 20:23
Avatar
Vladislav Domin:2.5.2017 20:44

Toto co chces sa da podla urobit najlepsie cez CRON, kde si nastavis casovy interval spustania scriptu, ktory kontroluje vsetkym uzivatelom vyprsanie membershipu

 
Nahoru Odpovědět
2.5.2017 20:44
Avatar
Marek Burda
Člen
Avatar
Marek Burda:2.5.2017 20:45

webzdarma CRON nemá. Ale rád by som to robil cez kódy...No netuším prečo to nefunguje

 
Nahoru Odpovědět
2.5.2017 20:45
Avatar
Odpovídá na Marek Burda
Martin Konečný (pavelco1998):2.5.2017 20:48

Ahoj,

WHERE $time>'".$vypis1["memb_time"]."'"

co obsahují proměnné $time a $vypis1['memb_ti­me']?

Nahoru Odpovědět
2.5.2017 20:48
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Marek Burda
Člen
Avatar
Marek Burda:2.5.2017 20:49
$time       = time();
memb_time='$timem_check'

Aktuálny čas a dlžka membershipu zapisana v db uživateľa

 
Nahoru Odpovědět
2.5.2017 20:49
Avatar
Marek Burda
Člen
Avatar
Marek Burda:2.5.2017 21:26

Nikomu teda nenapadá prečo si ten kod ruší riadky v DB skor ako treba ? Možno zlý zápis času ?

 
Nahoru Odpovědět
2.5.2017 21:26
Avatar
Odpovídá na Marek Burda
Neaktivní uživatel:2.5.2017 21:28

Ve skutečnosti nemusíš vůbec nic takového řešit. Stačí si uvědomit, že v membership je ten, jehož čas ještě nevypršel. Stačil by ti tedy jen jeden sloupec memb_expiration, ve kterém bude uveden čas vypršení membership. Ověření, zda daný člověk je v membership provedeš jako

NOW() < memb_expiration

Například seznam lidí v membershipu pak získáš

SELECT * FROM users WHERE NOW() < memb_expiration

Defaultně bude hodnota na nule. Pokud budeš chtít někomu nastavit membership, tak jen spustíš dotaz

UPDATE users SET memb_expiration = DATEADD(second, 3600, GETDATE()) WHERE user_id = 123
Nahoru Odpovědět
2.5.2017 21:28
Neaktivní uživatelský účet
Avatar
Marek Burda
Člen
Avatar
Marek Burda:2.5.2017 21:48

Hádže m ito chybu FUNCTION xaxa.GETDATE does not exist

 
Nahoru Odpovědět
2.5.2017 21:48
Avatar
Odpovídá na Marek Burda
Neaktivní uživatel:2.5.2017 21:55

Promiň, ten kód jsem odněkud zkopíroval. Toto by mohlo fungovat.

UPDATE users SET memb_expiration = DATE_ADD(NOW(), INTERVAL 3600 SECOND) WHERE user_id = 123
Nahoru Odpovědět
2.5.2017 21:55
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.