Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: (php) ORDER by time ongelma

vehkis91 [26.09.2009 14:59:17]

#

Okei, tein sivulleni yksinkertaisen viestisyteemin, mutta siinä on pieni ongelma.
Kun lajittelen viestit ajan mukaan laskevaan järjestykseen niin menee näin:

Testi	mattim	26.09.09 12:40:05	Delete
asdasd	vehkis	26.09.09 12:23:57	Delete
onkos   ville	26.09.09 06:53:12	Delete
nojoo	testi	26.09.09 06:40:44	Delete
testi2	ville	26.09.09 06:39:55	Delete

Kun pitäis olla näin:

onkos   ville	26.09.09 06:53:12	Delete
nojoo	testi	26.09.09 06:40:44	Delete
testi2	ville	26.09.09 06:39:55	Delete
Testi	mattim	26.09.09 12:40:05	Delete
asdasd	vehkis	26.09.09 12:23:57	Delete

Edit: noi ajat on sitten hieman väärin, ku serveri on jossain amerikoissa...
Ajan haen tallennusvaiheessa NOW() funktiolla ja tietokannassa on timestamp, mihin aika tallentuu.

Toivottavasti joku osaa auttaa tässä...

tgunner [26.09.2009 15:00:16]

#

Käännä algoritmi toisin päin. 8)

Millainen koodi?

vehkis91 [26.09.2009 15:02:17]

#

Ei toimi kääntäminen, tulee sama homma.

$sql = mysql_query("SELECT messages.from, messages.to, messages.message, messages.id, messages.title,
									DATE_FORMAT(messages.time,'%d.%m.%y %h:%i:%s') AS time
											FROM messages
											WHERE messages.to = '{$nick}'
											ORDER BY time DESC", $lnk);

Metabolix [26.09.2009 15:04:53]

#

Mikä tuossa muka on väärin? Alkuperäisessä viestissäsi järjestys on ensimmäisessä laatikossa oikea ja toisessa väärä, vaikka väität juuri päinvastoin. Vai tarkoittaako 12.xx nyt meikäläistä aikaa 00.xx? Kannattaisi formatoida ajat järkevästi eikä USAlaisittain.

Itse ratkaisu: järjestä viestit aikaleiman mukaan, älä formatoidun ajan. Muuta siis AS time => AS time_fmt.

vehkis91 [26.09.2009 15:17:36]

#

Kiitokset, nyt toimii. :D

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta