Autor | Zpráva | ||
---|---|---|---|
Ameopro Profil |
#1 · Zasláno: 6. 8. 2015, 01:16:20
Ahoj prosím Vás nevíte kde je chyba ? script má fungovat tak že vypíše datum z db TIMESTEMP a porovnat s aktualnim datem pokud se nerovná má napsat ne vip ale ono to furt ukazuje Ano i když datum je starší.
Prosím Vám kde mám chybu ? <?php include_once "view/config/config.php"; $result = mysql_query($sql); $test = mysql_query("SELECT * FROM test"); $row=Mysql_fetch_array($test); $time_add = time() +14*24*60*60; $zapis = date("Y-m-d H:i:s", $time_add); $datum = StrFTime("%d/%m/%Y %H:%M:%S", Time()); if($row["datum"] >= $datum) { echo "ANO VIP"; } else { echo "Ne vip"; } ?> |
||
Alphard Profil |
Moc se omlouvám, zapomněl jsem, že i sloupce s typem timestamp jsou formátovány jako stringy, sám je nepoužívám.
|
||
Ameopro Profil |
protože když to udělám takto udělá to opak nebo to nejde
<?php include_once "view/config/config.php"; $result = mysql_query($sql); $test = mysql_query("SELECT * FROM test"); $row=Mysql_fetch_array($test); if($row["datum"] >= time()) { echo "ANO VIP"; } else { echo "Ne vip"; } ?> |
||
Keeehi Profil |
var_dump($row["datum"]); var_dump(time()); |
||
Ameopro Profil |
#5 · Zasláno: 6. 8. 2015, 08:36:26
Vypsalo to toto: string(19) "2015-08-07 01:10:11" int(1438842975)
|
||
tiso Profil |
#6 · Zasláno: 6. 8. 2015, 09:38:02
[#5] Ameopro: a ani z toho ti nie je jasné, kde je problém?
if($row["datum"] >= date('Y-m-d H:i:s', time())) |
||
Ameopro Profil |
#7 · Zasláno: 6. 8. 2015, 09:46:18
Jestly mohu otázku to nešlo z důvodu že nebyl formát data ?
|
||
tiso Profil |
#8 · Zasláno: 6. 8. 2015, 09:59:51
Ameopro: porovnával si dátum z timestampom. V pôvodnom kóde si síce porovnával dátum s dátumom, ale nemal si rovnaký formát.
|
||
Kajman Profil |
#9 · Zasláno: 6. 8. 2015, 10:14:21
Ameopro:
String "2015-08-07 01:10:11" je větší (v abecedním pořadí je později) než string "1438842975" (na který se číslo pro porovnání se stringem převede). |
||
Keeehi Profil |
#10 · Zasláno: 6. 8. 2015, 10:57:46
Kromě tisova řešení jsou ještě možné další.
1. if(strtotime($row["datum"]) >= time())
2. Nebo zařídit, aby databáze vracela timpstamp v podobě počtu sekund a ne jako formátované datum. |
||
Ameopro Profil |
#11 · Zasláno: 6. 8. 2015, 15:34:22
a když to chci zakomponovat s mysql dotazem ?
mám to takto a nevzme to :( $sql = include("view/config/config.php"); $result = mysql_query($sql); $snew = mysql_query("SELECT * FROM inzerce WHERE num='".$_GET['mode']."' AND vip='1' AND expire('expire') >= time() "); while ($row=Mysql_fetch_array($snew)) |
||
Keeehi Profil |
#12 · Zasláno: 6. 8. 2015, 16:16:38
Ameopro:
To bude tím, že v MySQL funkce expire neexistuje a funkce time sice existuje, ale dělá něco jiného a jinak než ty chceš. Takhle by to mělo být lepší: ... AND `expire` >= NOW() |
||
Ameopro Profil |
#13 · Zasláno: 6. 8. 2015, 17:51:57
OK supper děkuji moc již vše funguje ...
|
||
Časová prodleva: 9 let
|
0