Autor Zpráva
Ameopro
Profil
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
Číslo z databáze se porovnává s nějakým řetězcem. To nemůže rozumně fungovat. Proč to vůbec formátujete? Na porovnání stačí číselný timestamp.

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());
ti vypíše co?
Ameopro
Profil
Vypsalo to toto: string(19) "2015-08-07 01:10:11" int(1438842975)
tiso
Profil
[#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
Jestly mohu otázku to nešlo z důvodu že nebyl formát data ?
tiso
Profil
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
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
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
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
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
OK supper děkuji moc již vše funguje ...

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: