Autor Zpráva
Marek Janů
Profil
Dobrý den,
řeším následující problém. Mám MYSQL databázi ve které jsou uloženy osobní údaje o nějakých lidech (jméno, příjmení, datum narození,...) Typ sloupců je TEXT a datum narození je uložen jako počet sekund od r. 1970 - jsme mladý kolektiv, takže to nevadí :-) Vím, že bych to měl ukládat jako DATE ale nechce se mi to předělávat. Otázka zní, jak zobrazovat jména pouze těch lidí, kteří budou mít v následujících například třiceti dnech narozeniny.

Pomůžete prosím někdo?
dracek
Profil
where timestamp_narozeni < timestamp_za_tricet_dni
Marek Janů
Profil
Jasný, jenomže mně jde především o to jak vytvořit timestamp_za_tricet_dni tzn. jak umazat ty "celé roky" a porovnávat pouze jako by se ti lidé narodili letos. A navíc by se tímto kódem zobrazovali všichni, kdo už letos narozeniny měli.
Max-el
Profil *
pomocí funkce date() si převedeš datum v sekundách na normální rok nějak takhle:

date ("d. m. Y", $datum)


kde $datum je načtenej čas z databáze a potom už nomálně pracuješ s datumem a porovnáváš ho.
Marek Janů
Profil
$vysledek2 = mysql_query("SELECT * FROM `$db`.`$tb` WHERE date(('Y',`birthday`))=='1988'", $spojeni);

- co tam mám blbě? - nenajde to žádný výsledek.
Alphard
Profil
co tam mám blbě?
mixuješ PHP a SQL funkce a syntaxi, tohle nemůže fungovat

řešení ti ale neporadím, nenapadá mě vhodné (myšleno efektivní, ne nějakou prasárnu) řešení, které to zvládne jedním dotazem
Marek Janů
Profil
řešení ti ale neporadím, nenapadá mě vhodné (myšleno efektivní, ne nějakou prasárnu) řešení, které to zvládne jedním dotazem

Asi takové řešení ani neexistuje, každopádně, kdyby někoho něco napadlo, tak s tím sem. Asi jsi jediný, kdo pochopil co potřebuji.

dracek - to je hezký, co mi radíš, ale je to bohužel nesmysl.
Max-el - jakou funkci lze porovnávat datum ve formátu "d. m. Y" s jiným datem ve formátu "d. m. Y" přičemž to jsou textové řetězce ?
tiso
Profil
$timestamp_za_tricet_dni=time()+60*60*24*30;
Alphard
Profil
tiso
to jo, ale k čemu to bude?
tiso
Profil
Alphard - k tomu čo potrebuje... Keď sa chce hrať s timestampom, tak nech sa hrá...

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