[SOLVED] ORDER BY ASC en DESC inverteren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rogier Burton

Rogier Burton

09/01/2008 14:05:00
Quote Anchor link
Hallo,

Ik ben redelijk nieuwe met PHP en MySQL dus ik hoop dat mijn vraag simpel is.
Ik heb een tabel met meerdere kolommen (leeftijd, naam, score, etc...)
Nu wil ik deze kolommen sorteren (dat kan heel leuk met de functie ORDER BY).
Alleen één probleempje: hoe zorg ik ervoor dat ASC DESC wordt en DESC ASC wordt (dus omdraait), als men nogmaals op de knop 'sorteer op leeftijd' klikt? (dus bij de eerste klik moet het 1-10 worden gesorteerd en bij de tweede klik 10-1)
Dit vindt je heel veel terug op websites...

Bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Rogier Burton
 
PHP hulp

PHP hulp

26/12/2024 12:47:48
 
Boris Mattijssen

Boris Mattijssen

09/01/2008 14:09:00
Quote Anchor link
<a href="?sort=ASC">Klik hier</a>
ORDER BY id $_GET['sort']

Zoiets?
 
Terence Hersbach

Terence Hersbach

09/01/2008 14:10:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if(isset($_GET['order']))
{

    if($_GET['order'] == 'desc')
        $order = 'DESC';
    else
        $order = 'ASC';
}

else
    $order = 'ASC';

$sql = 'SELECT * FROM tabel ORDER BY '.$order;

if($order == 'DESC')
    echo '<a href="index.php?order=asc">Omdraaien!</a>';
else
    echo '<a href="index.php?order=desc">Omdraaien!</a>';
?>
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Rogier Burton

Rogier Burton

09/01/2008 14:14:00
Quote Anchor link
brie schreef op 09.01.2008 14:09:
<a href="?sort=ASC">Klik hier</a>
ORDER BY id $_GET['sort']


brie, nu wordt alles ASC gesorteerd als je op de link klikt. Da's voor de helft goed, want ik wil ook graag dat als de client nog een keer erop klikt alles DESC wordt gesorteerd ;)
Toch bedankt

Edit: het zou heel mooi zijn als dit kan d.m.v. één knop. (dus niet een knop voor sorteren en een knop voor omdraaien)

Wat ik momenteel heb:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
if(isset($_POST['sorteren'])){

if ($DESCASC == " ASC"){
$DESCASC = " DESC";
}
if ($DESCASC == " DESC"){
$DESCASC = " ASC";
}

$sorteren =  $_POST['sorterenbox'].$DESCASC;
}

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ORDER BY $sorteren


Hier maak ik gebruik van een drop-down-box waarin je kunt selecteren WAT je wilt sorteren en een knop 'Sorteren!'
Gewijzigd op 01/01/1970 01:00:00 door Rogier Burton
 
Boris Mattijssen

Boris Mattijssen

09/01/2008 14:21:00
Quote Anchor link
klopt, k was een beetje lui :)
Maar terence heeft je ondertussen al het antwoord geschreven ;)

Edit:
gewoon zo toch:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if($_GET['sort'] == 'asc')
{

echo '<a href="?sort=desc">Desc selecteren</a>'; // knop1
}
else
{
echo '<a href="?sort=ac">Desc selecteren</a>'; //  nog steeds knop1
}
?>

?>
Gewijzigd op 01/01/1970 01:00:00 door Boris Mattijssen
 
Frank -

Frank -

09/01/2008 14:28:00
Quote Anchor link
Dat kan slimmer, je hoeft niet 2x te controleren welke waarde $order heeft:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(isset($_GET['order']) && strtoupper($_GET['order']) = 'DESC'){
    $order = 'DESC';    // huidige
    $new_order = 'ASC';
}
else {
    $order = 'ASC';        // huidige of default
    $new_order = 'DESC';
}


$sql = 'SELECT * FROM tabel ORDER BY kolomnaam '.$order;

echo '<a href="index.php?order='.$new_order.'">Omdraaien!</a>';
?>

Het kan ongetwijfeld nog korter.
 
Rogier Burton

Rogier Burton

09/01/2008 15:20:00
Quote Anchor link
Allemaal heel erg bedankt! Ik ben er uit.
Uiteindelijk gekozen voor brie...

Iedereen bedankt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.