Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Lajittelu vuoden ja numero mukaan

Tapani [22.07.2005 10:34:03]

#

Mysql-haussa

<?php
$kysely = mysql_query("select vuosi, nro from lehtitaulu where lehti = 'spiderman' order by vuosi, nro");

while ($Lehtihaku = mysql_fetch_row($kysely))
{
print $Lehtihaku[0] . ":" . $Lehtihaku[1]. "<p>";
}
?>

tulee pieni kauneusvirhe. Eli, kysely osaa lajitella muuten oikein vuoden ja numeron mukaan, mutta jos nro-kentässä on kaksi numeroa tulostuu esim. 13:sta ennen 2:sta. Olisikohan jollakin tähän jotain parempaa ratkaisua?

ajv [22.07.2005 10:59:14]

#

Onhan nro-kenttä numeerinen? Tuollainen järjestys viittaa yleensä siihen, että kyseessä on merkkijonokenttä.

Tapani [22.07.2005 12:25:51]

#

Kiitos vinkistä. Siinähän se lajittelujärjestys johtuikin. Nro-kenttä on muotoa VARCHAR. Vaihtamalla sen vaikkapa Integeriksi (Int) numeroiden lajittelu toimii oikein. Sitten tulee vain sellainen ongelma, että numerokenttään tarvitsee syöttää myös ei-numeerisia merkkejä esim. 12-13, joita ei voi numeeriseen kenttään tallettaa.

Tapani [25.07.2005 10:46:50]

#

Ihan vaan tiedoksi, mikäli jollekin tulee vastaava ongelma eteen kenttien muodon suhteen; lajittelu toimii oikein laittamalla nro-kenttä VARCHAR-muotoon ja merkitsemällä yksinumeroiset luvut 01, 02, jne.

arcatan [25.07.2005 10:59:38]

#

Tapani kirjoitti:

Ihan vaan tiedoksi, mikäli jollekin tulee vastaava ongelma eteen kenttien muodon suhteen; lajittelu toimii oikein laittamalla nro-kenttä VARCHAR-muotoon ja merkitsemällä yksinumeroiset luvut 01, 02, jne.

Väittäisin, että VARCHARia ei kannatta käyttää numerokenttiin.

kasetti [25.07.2005 12:12:12]

#

Haussa voi vaihtaa kentän tyyppiä CAST funktiolla:

http://dev.mysql.com/doc/mysql/en/cast-functions.html

Vastaus

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

Tietoa sivustosta