Autor | Zpráva | ||
---|---|---|---|
rad Profil * |
#1 · Zasláno: 11. 10. 2011, 00:10:10
Rad bych vytvoril casovy graf kde by se zobrazoval pocet objednavek v eshopu.
Nejak mi ale neni jasne jak postupovat pri navrhu doplnujich tabulek do databaze - a potom take na vystupu. Jde mi hlavne o datum kdyz budu tvorit graf tak napriklad 10.11 bude 5 objednavek - > to si snadno muzu ulozit do databaze a potom to zobrazit ale potom 11.11 nebude zadna takze z databaze nebude co tahat do grafu. Diky za radu. |
||
okolojdouci Profil * |
#2 · Zasláno: 11. 10. 2011, 00:56:52
rad:
„Nejak mi ale neni jasne jak postupovat pri navrhu doplnujich tabulek do databaz“ Nijak. Žádné doplňující tabulky nepotřebuješ. Vytáhni si z tabulky objednávek COUNT(ID) .. WHERE MONTH(vlozeno) = měsíc .. GROUP BY MONTH(vlozeno). Pak je jen drobný zádrhel, jak vypsat všechny hodnoty vč. dnů, kdy objednávky nebyly. Nejspíš bych ty hodnoty z databáze vysypal do asociativního pole a z něj pak v cyklu (1-31) vypsal. Jestli mi úplně nerozumíš, podívej se na http://www.linuxsoft.cz/article.php?id_article=864 a http://www.linuxsoft.cz/article.php?id_article=179 |
||
okolojdouci Profil * |
#3 · Zasláno: 11. 10. 2011, 01:09:18
ardon, GROUP BY DAY(vlozeno)
|
||
rad Profil * |
#4 · Zasláno: 11. 10. 2011, 09:14:21
to je prave to - vsechny mesice nemaji 31 dnu.
nevim kde beres jistotu ze mam v objednavkach 2 tabulky mesic a den. Ne nemam mam tam cas v jinem formatu. nevim presne jak to myslis s asociativnim polem. chtel bych napriklad vypsat data z aktualniho mesice. |
||
rad Profil * |
#5 · Zasláno: 11. 10. 2011, 10:20:25
konkretne datum a cas objednavky je ulozeno takto : 2011-04-30 21:37:58
|
||
okolojdouci Profil * |
#6 · Zasláno: 11. 10. 2011, 10:43:09
SELECT COUNT(ID) , DAY(datumod) FROM objednavky WHERE MONTH(vlozeno) =10 GROUP BY DAY(vlozeno) Tím získáš všechny dny (v desátém měsíci), které mají aspoň jednu objednávku. A k nim přiřazené počty objednávek. V php si pak zařiď zbytek: - zkopírování hodnot z toho dotazu do pole - zjistit počet dnů požadovaného měsíce - cyklus 1-početdnů - v tom cyklu vypsání buď příslušného počtu objednávek (pokud pro ten den hodnota v poli existuje) nebo nula, když den v tom poli není. |
||
Kajman_ Profil * |
#7 · Zasláno: 11. 10. 2011, 10:48:01
„WHERE MONTH(vlozeno) =10“
Korektnější a optimálnější (hlavně pokud bude index na vlozeno) bude podmínka where vlozeno >= '2011-10-01' and vlozeno< '2011-11-01' |
||
rad Profil * |
#8 · Zasláno: 12. 10. 2011, 22:45:21
zkousim porovnavat pole kde neco je s indexem dne ale nejak se nedari
while($facture_day = $db->fetch_assoc()) { $facture_data[$facture_day['DAY(datetime)']] = $facture_day['COUNT(id_facture)']; } for($i=0;$i < $pocet_dnu;$i++) { if($facture_data[$i]==$i) { } } co je spatne ? |
||
rad Profil * |
#9 · Zasláno: 12. 10. 2011, 22:50:51
aha ok uz to vidim porovnavam nesmysl ale potom se teda ptam jak porovnat jednotlive dny s tabulkou ? jeste jsem premyslel udelat tabulku trochu jinak
|
||
rad Profil * |
#10 · Zasláno: 13. 10. 2011, 10:18:31
tak i kdyz to zkousim takto tak porad nic ...
for($i=0;$i < $pocet_dnu;$i++) { foreach($facture_data as $k => $v) { if ($i==$k) { echo "voila"; echo "<h1>".$k."</h1>"; echo "<h1>".$v."</h1>"; } else { echo "$i</br>"; } } } |
||
Kajman_ Profil * |
#11 · Zasláno: 13. 10. 2011, 10:50:30
for($i=1;$i <= $pocet_dnu;$i++) { if($facture_data[$i]>0) { echo $i," - ",$facture_data[$i],"<br>"; } else { echo $i," - prd<br>"; } } |
||
Časová prodleva: 13 let
|
0