

Jak vypsat datum z databáze MySQL?
Mám dotaz do databáze
$result = mysql_query("SELECT * FROM tkosp_akce WHERE krajakce='Jihomoravský kraj' ORDER BY mestoakce,datumakce");
while ($zaznam = mysql_fetch_array ($result)):
A potom
<span><?php echo $zaznam['mestoakce']; ?>, <?php echo $zaznam['datumakce']; ?></span>
Tím se mi ale samozřejmě vypíše tvar 2017-09-21. Kdyby to byl jeden záznam, tak bych to uměl. Ale když to je třeba 20 řádků, tak nevím, jak na to, abych docílil u všech
echo $zaznam['datumakce']
den. měsíc.
Můžeš naformátovat datum na straně MySQL, jak navrhuje Jan Fiala.
Ale také na straně PHP si můžeš udělat pěkné cvičení na práci s řetězci po vlastní ose:
Ta funkce není nic moc, ale účel splní a můžeš ji doplnit a obměnit pro vlastní potřebu.
Nějak se mi nedaří. Možná to dávám na špatné místo. Dal jsem to hned před while a
za while zase
1. Tu funkci dej třeba na konec skriptu.
2. Nahraď uvnitř while řádek
řádkem
On se mi ten datum už vypíše jak chci. Ale dělá mi to ještě nějaké chybky.
Vypiš sem, prosím, řádky kolem řádku 77.
Je tam
Vyhoď řádek 73 tohoto výpisu - pole $zaznam se definuje až na řádku 79.
Paráda, děkuji 1 897x, jdu to prostudovat. Jen ještě malý dotaz. Z db to tahám na jednotlivé kraje. Vždy nový select a while. Musím to dát pokaždé, nebo to funguje globálně pro všechny další selecty (jasně, že to vyzkouším, ale abych zbytečně nebobtnal kód)?
Tu funkci načteš jenom jednou.
Jo, dal jsem jí před všechny ty selecty hned po připojení.
Chtěl bych do ní zabudovat i, aby ze zobrazoval rovněž název dne. Ani po hodině různého zkoušení jsem nepřišel na to, jak tam zabudovat "W" (či A). Buď se mi vracelo všude "čtvrtek". Zkoušel jsem právě i novou funkci, ale výsledek stejný, tak jdu ještě s prosíkem.
nebo různě dlouhé (1-4 místné) číslo , nebo rovnou nějaká chyba.
Zkoušel jsem právě i novou funkci, ale výsledek stejný, tak jdu ještě s prosíkem.
Před konkrétním řešením je vhodné uvědomit si základní: funkce přiřazuje datům, které jí dáš, nějaký výsledek, který z nich vypočítá (velmi zhruba řečeno).
Takže se podívejme na první Tvůj kód: dáváš funkci $datum, ale ona s ním dále nepracuje, nýbrž tvrdošíjně vrací StrFTime("%A") . Vždycky musí vracet totéž, vstupní hodnotu vůbec nebere v úvahu.
V druhém kódu s proměnnou $datum pracuješ, ale předpokládáš, že $datum je array (což může být) a má nějakou hodnotu pro "%W" (a tuto hodnotu postrkuješ funkci StrFTime), o čemž pochybuji.
Já ten array zkoušel od Vrány
https://php.vrana.cz/ceske-nazvy-mesicu-a-dnu-v-ty dnu.php
Ono by to možná i stačilo jen nějak
Jenže nevím právě syntaxi na to echo, aby to vyrábělo z $zaznam['datumakce']
Až to budu umět zobrazit, tak to snad budu umět i převést na české názvy.
Také nefunguje buuuuuuuu
A já tě vrátím zpět k selectu. Tohle vše (naformátované datum, dny apod.) můžeš dostat přímo jako výsledek SQL dotazu a nemusíš to pak obcázet formátováním ve stránce.
Tak to je cisty antipattern. Databazovy select sa o taketo veci nema starat. To ma mat na starosti aplikacna vrstva.
Je to sice malo pravdepodobne, ale ak by chcel v buducnosti riesit format datumu podla "culture", tak sa mu to uz nebude dat.
S tím jsem počítal, ale v případě Kráti bych to moc nečekal. A naše společnost zase tak multikutli není, aby musel už řešit arabštinu.
Nemáš nějaký link, kde bych to nastudoval v češtině?
Toto urcite fungovat nemoze, kedze premennu $nazvy ani len nevyuzivas.
Neber to nijak v zlom, ale je vidiet, ze v tom dost tapes a len lepis kod, ktory najdes kade tade aj ked mu nerozumies.
Vznika z toho kod, kde je krizom krazom PHP, HTML, rozne funkcie, selecty, cykly. Cisty chaos, ktory uz po tyzdni nebudes vediet udrziavat a v pripade potreby ani menit.
Myslim si, ze sa s tym trapis uz dost dlho na to, aby si si trochu postudoval OOP a skusil dat tomu nejaku kulturu.
Pracu ti moze zjednodusit aj nejaky microframework https://www.slant.co/topics/2642/~php-microframewo rks ... ja osobne preferujem SLIM.
Jo, teď jsi to vystihl. Ale zase umím rmutovat. A toto také asi očekává nějaký array.
Trápím/netrápím. Já to dělám dobrovolně a je to dávno i funkční. Chtěl bych však ušetřit pole ve formuláři, kde mám výběr dne přes radio.
Přesto se ale něco velmi rád přiučím, bude se to hodit do budoucna. Jdu omrknout ten microframework.