Avatar billede zac Nybegynder
26. september 2004 - 02:45 Der er 3 kommentarer og
1 løsning

Liste m. ORDER BY $order DESC, men med alle øvr. felter ASC

Bruger bl.a.
<td><a href='view_indmeldelser.php?order=fornavn'><b>Fornavn:</b> (sortér)</a></td>
<td><a href='view_indmeldelser.php?order=dato'><b>Dato:</b> (sortér)</a></td>...

Og så:
$order = $_GET['order']; // så der kan sorteres på felterne
if (!$order) // så udgangspositionen er sort efter dato
{
    $order = "dato";
}

I MySQL:
$result = mysql_query( "SELECT
* FROM indmeldelse
ORDER BY $order DESC" )

Hvordan nu få begyndelsen til sortering efter faldende dato (nyeste først), men uden at fornavn mv. også bliver sorteret faldende, når feltnavnet her klikkes for at sortere?
Avatar billede jakoba Nybegynder
26. september 2004 - 02:48 #1
Du angiver blot for hvert felt om det felt skal ordnes i sitgende (ASC) eller faldende (DESC) orden.

ORDER BY  det_ene_felt DESC, det_andet_felt ASC, det_tredie_felt DESC

mvh JakobA
Avatar billede jakoba Nybegynder
26. september 2004 - 02:59 #2
for at bygge din ORDER BY linie kunne du fx lave et array med feltnavnene i:

$felter = array( "dato", "fornavn", "efternavn" );

$order_by_linie = "ORDER BY ";
$order_by_linie .= $order ." DESC ";

foreach ( $felter as $felt ) {
    if ( $felt != $order ) {
        $order_by_linie .= ", " .$felt ." ASC";
    }
}

$result = mysql_query( "
    SELECT *
    FROM indmeldelse
    $order_by_linie
" )
Avatar billede zac Nybegynder
26. september 2004 - 03:07 #3
njaj, det kan jeg ikke få til at virke efter hensigten.

ORDER BY dato DESC, fornavn ASC, ... giver start dato DESC order, men så kan man ikke komme ind i sortering af de enkelte felter/ kolonner som før med:

$order = $_GET['order']; // så der kan sorteres på felterne
if (!$order) // så udgangspositionen er sort efter dato
{
    $order = "dato";
}

At liste ORDER BY ASC, ...efter hinanden i mysql_query angiver vel kun, hvad der skal ordnes efter først, dernæst, dernæst...


Er det ikke kun muligt at skifte mellem at sortering af de enkelte kolonner, når der er en $order i MySQL'en?
Avatar billede zac Nybegynder
26. september 2004 - 03:09 #4
sendte min kommentar før, jeg havde set din næste kommentar - forslaget om ORDER BY vha. array ser meget mere fornuftigt ud - prøver det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester