Autor | Zpráva | ||
---|---|---|---|
Kyle Profil |
#1 · Zasláno: 16. 1. 2007, 18:05:36
Ahoj, potřeboval bych poradit...
potřebuju z DB vypsat vždy nejbližší údaj k datu, které je (např. dnes 16.11.2007), tak, že mi to vypíše např. řádek, který tam bude mít datum 20.11.2007 (bude v tu dobu nejbližší) datum zapisuju $datum = date('j. n. Y'); promenná datum se zapiše do DB... nevíte někdo jak na to?..byl bych vam hrozne vděčnej :) |
||
YoSarin Profil |
#2 · Zasláno: 16. 1. 2007, 18:15:10 · Upravil/a: YoSarin
SELECT datum FROM table ORDER BY abs(datediff(datum, "2007-11-16")) ASC LIMIT 1;
To by snad mělo fungovat... :-) |
||
Kyle Profil |
#3 · Zasláno: 16. 1. 2007, 18:27:35 · Upravil/a: Kyle
no mam to asi takhle:
$result = mysql_query ("SELECT datum FROM `zap_md` ORDER BY abs(datediff(datum, '2007-11-16')) ASC LIMIT 1;"); $row = mysql_fetch_array($result); ale nic to nedela :-/, nic to nevypise a jeste bych potreboval ne od konkretniho data, ale proste od toho co je (bude), ale to se asi vyresi $datum = date('j. n. Y'); promenna se vypise :)... ale tak mi to nejak nejde :-/, asi jsem neco udelal blbe, vidim takovyto prikaz poprve :o) EDIT: jo jeste, aby se vzal vlastne celej ten radek, aby se z neho dalo vypisovat ... :o)... napr. $row[test] |
||
YoSarin Profil |
#4 · Zasláno: 16. 1. 2007, 18:40:41
mi ten dotaz sám o sobě funguje...
co se vypíše na $result["datum"]? |
||
YoSarin Profil |
#5 · Zasláno: 16. 1. 2007, 18:41:06
teda na $row["datum"] :)
|
||
Kyle Profil |
#6 · Zasláno: 16. 1. 2007, 18:43:10
no prave, ze nic mi to nevypise a ani zadnou chybu to nehlasi... :-/
|
||
YoSarin Profil |
#7 · Zasláno: 16. 1. 2007, 18:45:29
zkus ten dodaz poslat přes PHPmyAdmina - jestli tam nevyhodí žádnou chybu, tak si zkontroluj jestli ho máš sprvně přepsanej v kódu...
|
||
YoSarin Profil |
#8 · Zasláno: 16. 1. 2007, 18:46:14
a nebo hned pod to mysqli_querry(); dej die(mysql_error());
|
||
Časová prodleva: 15 dní
|
|||
kuchi Profil * |
#9 · Zasláno: 31. 1. 2007, 20:26:50
hoj. mam podobny problem. prikaz SELECT * FROM `program` ORDER BY abs(datediff(datum, '2007-01-31')) ASC LIMIT 1; mi funguje ok na mem pc doma, kdyz ho ale skusim provest na servru, hodi mi to chybu (spatny syntax). Mohlo by to byt tim ze na sevru je MySQL 4.0.26? Pokud ano, jak mam syntax upravit aby fungoval?
|
||
kuchi Profil * |
#10 · Zasláno: 1. 2. 2007, 08:32:12
tak ja jsem nelenil a skusil to vyresit jinak, pres PHP. Vysledkem je id radku s nejblizsim datumem:
//Zapise do promene $aktualdatum dnesni datum ve formatu RRRRMMDD (napr. pro 1.1.2007 to bude 20070101) $aktualdatum = date("Ymd"); //Vybere z tabulky vsechny zaznamy serazene podle data od nejstarsich po nejnovejsi $nejblizsiakce = MySQL_Query("select * from program order by datum asc"); while ($nejblizsiakce2 = MySQL_Fetch_Array($nejblizsiakce)){ //Zformatuje datum z databaze do pozadovaneho tvaru RRRRMMDD (mozna to jde zformatovat i lehceji ale ja to neumim) $datumakce = $nejblizsiakce2["datum"][0].$nejblizsiakce2["datum"][1].$nejblizsiakce 2["datum"][2].$nejblizsiakce2["datum"][3].$nejblizsiakce2["datum"][5]. $nejblizsiakce2["datum"][6].$nejblizsiakce2["datum"][8].$nejblizsiakce 2["datum"][9]; //Pokud je nejblizsi akce dnes, zapise do promene $id cislo (id) dnesni akce, do promene $i zapise cokoliv, timpadem se uz dalsi akce nebudou porovnavat if ($aktualdatum == $datumakce){ $id = $nejblizsiakce2["id"]; $i = "d"; } //Pokud neni nejblizsi akce dnes, zapise do promene $id prvni nejblizsi zaznam, do promene $i zapise cokoliv aby se dalsi zaznamy nepridavaly if (($aktualdatum < $datumakce) and ($i == "")) { $id = $nejblizsiakce2["id"]; $i = "d"; } } Tohle jsem vymysle, myslim ze by to melo fungovat i s prelomem roku, ... Pokud tam najdete chybu, dejte pls. vedet. |
||
djlj Profil |
#11 · Zasláno: 1. 2. 2007, 09:05:55
kuchi
Možná funkční, ale pokud budeš mít v databázi desetitisíce dat, tak také dosti pomalé ;), |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0