Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: ASC & DESC

Grimmi [25.06.2005 13:43:12]

#

Eilisestä asti pohtinut miten saisin yksinkertaisesti MySQ tietokannan vaihtamaan luettelo järjestyksen ASC ja DESC välillä. Tarkoituksena olisi laittaa niin, että kun painaa kerran, se menee ASC, kun painaa toisen kerran, se menee DESC. Sivua voi kattoa osoitteessa http://grimmi.no-ip.biz/kirjasto/

Tällä hetkellä se toimii vain että saan päätettyä minkä luokan mukaan se menee ASC

mysql_query("SELECT * FROM kirjasto WHERE luokka = '$nimi3' ORDER BY '$jarjestys' ASC", $yhteys);

echo "	<TD ID=\"id\"><A HREF=\"index.baka?luokka=$nimi3&jarjestys=id\"><B>ID</B></A></TD>\n";

Tossa on haku ja siihen vaikuttava linkki.

Antti Laaksonen [25.06.2005 14:14:42]

#

Tarvitset vielä yhden muuttujan, jonka nimi voisi olla vaikka suunta. Jos suunta on 0 (oletus), järjestys on alusta loppuun. Jos taas suunta on 1, järjestys on lopusta alkuun. Tämän muuttujan perusteella valitaan, tuleeko kyselyyn ASC vai DESC. Lisäksi muuttujan arvo linkissä on vastakkainen. Esim. kysely muodostetaan näin:

// jos $suunta on 0, $ksuunta on "ASC"
// muuten $ksuunta on "DESC"
$ksuunta = $suunta == 0 ? "ASC" : "DESC";
mysql_query("SELECT * FROM kirjasto WHERE luokka = '$nimi3' ORDER BY '$jarjestys' $ksuunta", $yhteys);

Grimmi [25.06.2005 14:36:08]

#

Hmm, juu. Mutta mitenkäs ton linkin saisi toimimaan? :S

Antti Laaksonen [25.06.2005 14:42:16]

#

Melkein samalla tavalla. Seuraavassa on muuttuja $lisa, jonka avulla tarpeen tulleen määritetään käänteinen järjestys. Suunta on käänteinen vain, jos nykyinen suunta on pienimmästä suurimpaan ja valittu ryhmä on sama. Samanlainen koodinpätkä tulee joka sarakkeen kohdalle. Siis jos käyttäjä valitsee toisen sarakkeen, suunta on aina aluksi pienimmästä suurimpaan.

$lisa = ($suunta == 0 && $jarjestys == "id") ? "&suunta=1" : "";
echo "<td id=\"id\"><a href=\"index.baka?luokka=$nimi3&jarjestys=id{$lisa}\"><b>ID</b></a></td>\n";

Grimmi [25.06.2005 15:19:48]

#

oon kohtalaisen nuubi niin en saanut noista mitään toimimaan kun kokeilin, joten päädyin ratkaisuun:

echo "	<TD ID=\"id\">";
echo "	<A HREF=\"index.baka?luokka=$nimi3&jarjestys=id&suunta=ASC\">";
echo "	<IMG SRC=\"asc.png\" HEIGHT=\"9px\" WIDTH=\"7px\" ALT=\"nouseva\" BORDER=\"0\"></A>";
echo "	<B>ID</B>";
echo "	<A HREF=\"index.baka?luokka=$nimi3&jarjestys=id&suunta=DESC\">";
echo "	<IMG SRC=\"desc.png\" HEIGHT=\"9px\" WIDTH=\"7px\" ALT=\"laskeva\" BORDER=\"0\"></A></TD>\n";

Vastaus

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

Tietoa sivustosta