Autor Zpráva
mark009
Profil *
Dobrý den,
Mám problém zřazením.
V DB mám řádky:
id                  day        user   view
2441    2012-04-21    5    1
2440    2012-04-20    1    0
2439    2012-04-19    2    0
2438    2012-04-18    5    0
2437    2012-04-17    4    0
........

Když to nechám vypsat pomocí tohohle příkazu:
$vyber = MySQL_Query("SELECT user ,DATE_FORMAT(day,'%d.%m.') as day FROM  chilli_stats_1_Day GROUP BY DATE_FORMAT(day,'%Y%m%d') DESC limit 20") or die(mysql_error()); 

Vypíše se mi to takhle:
21.04. | 20.04.  |  19.04.  |  18.04. | 17.04. .......
Jenomže to potřebuji naopak.Tedy:
17.04. | 18.04.  |  19.04.  |  20.04. | 21.04. .......
Když dám místo DESC to ASC tak mi to vypíše zas úplný začátek. Tedy zas:
22.02. | 23.02. | 24.02. | 25.02. | 26.02. ....... - To jsou starší data.
No chtěl bych vypsat prvních 20 nejnovějších řádku z databáze.
Alphard
Profil
V ukázce jste uvedl group by místo order by, ale to je asi jen překlep.
Je třeba použít poddotaz, prvně vybrat pomocí limitu 20 nejnovějších a pak je seřadit obráceně. K řazení nepoužívejte date_format(), ničemu nepomůže, jen to brzdí.
mark009
Profil *
Myslíte něco takového?
("SELECT user ,DATE_FORMAT(day,'%d.%m.') as day FROM  chilli_stats_1_Day ORDER BY day DESC limit 20")  t order by day, id
Alphard
Profil
Najděte si něco o poddotazech, anglicky subquery.
Základní syntaxe je
select * from (SELECT user ,DATE_FORMAT(day,'%d.%m.') as day FROM  chilli_stats_1_Day ORDER BY day DESC limit 20)  t order by day, id
mark009
Profil *
Díval jsem se na ty poddotazy,ale nějak nejsem z toho chytrý. nevím jak to nastavit. :(
mark009
Profil *
Udělal jsem to tak,ale píše to že je neznámy sloupec "id"

$vyber = MySQL_Query("SELECT * FROM(SELECT user
,DATE_FORMAT(day,'%d.%m.') as day FROM chilli_stats_1_Day ORDER BY day DESC
limit 20) t order by day,id asc") or die(mysql_error()); 

Kde může být chyba?

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: