Autor | Zpráva | ||
---|---|---|---|
Stepanka Profil * |
#1 · Zasláno: 17. 2. 2009, 11:17:03
Ahoj,
prosím, nevěděl by někdo, jak vyřešit můj problém? Mám tabulku "historie_skladu", kde ukládám pohyb počtu kusů produktů na skladě. A potřebuju zobrazit aktuální stav ke dni například 10.2.2009 V tabulce mám uložený údaj (počet kusů) ke dni 8.2.2009 je 8 kusů, 13.2.2009 je 5 kusů a 14.2.2009 je 6 kusů. Takže bych potřebovala vytvořit SELECT, který zjistí, zda existuje údaj pro datum 10.2.2009 -> neexistuje. Zkusí zda existuje údaj pro 9.2.2009 -> neexistuje. Zkusí zda existuje údaj pro 8.2.2009 -> ANO, existuje, a to je ten aktuální stav ke dni 10.2.2009, právě těch 8 kusů. Rozumíte mi? Je to vlastně to samé, jako máte u výpisu z účtu z banky. Já mám zatím toto, ale nefunguje to: SELECT pocet_kusu FROM historie_skladu WHERE date_format(datum,\"%Y%m%d\") <= '$g_od' ORDER BY datum DESC LIMIT 1 kde $g_od je 10.02.2009 |
||
nightfish Profil |
#2 · Zasláno: 17. 2. 2009, 11:19:43
SELECT pocet_kusu FROM historie_skladu WHERE date_format(datum,'%Y-%m-%d') <= '$g_od' ORDER BY datum DESC LIMIT 1 a v $g_od musí být datum jako '2009-02-10' |
||
Stepanka Profil * |
#3 · Zasláno: 17. 2. 2009, 11:32:02
nightfish
Super, děkuji moc ;-) |
||
Stepanka Profil * |
#4 · Zasláno: 17. 2. 2009, 11:38:42
A kdybys chtěl vytáhnout jedním dotazem dva údaje?
Mám dva datumy, dejme tomu: $g_od = '2009-02-10' a $g_do = '2009-02-17' Šlo by to jedním dotazem, ať tam nemusím dávat dva? Děkuji. |
||
nightfish Profil |
#5 · Zasláno: 17. 2. 2009, 11:59:29
(SELECT pocet_kusu FROM historie_skladu WHERE date_format(datum,'%Y-%m-%d') <= '$g_od' ORDER BY datum DESC LIMIT 1) UNION ALL ( SELECT pocet_kusu FROM historie_skladu WHERE date_format(datum,'%Y-%m-%d') <= '$g_do' ORDER BY datum DESC LIMIT 1) |
||
Stepanka Profil * |
#6 · Zasláno: 17. 2. 2009, 12:34:16
nightfish
furt mi to házelo error, tak jsem to radši vyřešila dvěma dotazy.. I tak ale mockrát děkuju. |
||
nightfish Profil |
#7 · Zasláno: 17. 2. 2009, 12:40:44
„furt mi to házelo error“
jaký? tohle by mělo fungovat... |
||
Stepanka Profil * |
#8 · Zasláno: 17. 2. 2009, 12:50:10
nightfish
Když mám v kódu $query = ("(SELECT pocet_kusu AS pocet_kusu_od FROM ".TBL_PREFIX."historie_skladu WHERE date_format(datum,'%Y-%m-%d') <= '$od_upraveno' AND id_produkt = ".$_SESSION['id_produktu']." ORDER BY datum DESC LIMIT 1) UNION ALL (SELECT pocet_kusu AS pocet_kusu_do FROM ".TBL_PREFIX."historie_skladu WHERE date_format(datum,'%Y-%m-%d') <= '$do_upraveno' AND id_produkt = ".$_SESSION['id_produktu']." ORDER BY datum DESC LIMIT 1)"); $row = mysql_fetch_array($query); tak mi to vždycky vyhodí: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/doc/atd/atd/atd/historie-skladu.php on line 235 Ale když to rozdělím do dvou dotazů (fakt jen rozdělím, nic jinýho nedělám), tak to funguje normálně. |
||
nightfish Profil |
#9 · Zasláno: 17. 2. 2009, 12:53:28
„Ale když to rozdělím do dvou dotazů (fakt jen rozdělím, nic jinýho nedělám)“
ve výše uvedeném kódu jaksi chybí mysql_query :-) |
||
Stepanka Profil * |
#10 · Zasláno: 17. 2. 2009, 12:54:53
Rozdělené do dvou dotazů to mám takto:
$query = mysql_query("SELECT pocet_kusu FROM ".TBL_PREFIX."historie_skladu WHERE date_format(datum,'%Y-%m-%d') <= '$od_upraveno' AND id_produkt = ".$_SESSION['id_produktu']." ORDER BY datum DESC LIMIT 1"); $row = mysql_fetch_array($query); $query2 = mysql_query("SELECT pocet_kusu FROM ".TBL_PREFIX."historie_skladu WHERE date_format(datum,'%Y-%m-%d') <= '$do_upraveno' AND id_produkt = ".$_SESSION['id_produktu']." ORDER BY datum DESC LIMIT 1"); $row2 = mysql_fetch_array($query2); A jede to v pořádku. Nějaké zvláštní to je ... |
||
Stepanka Profil * |
#11 · Zasláno: 17. 2. 2009, 12:55:50
nightfish
:-D sakra jak může být někdo tak slepý? Díky moc.... a sory. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0