Dynamische Order By

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco

Marco

31/10/2009 09:41:00
Quote Anchor link
Wanneer er records uit onze database gehaald worden, moeten die op een bepaald gebied worden gesorteerd. Dat selecteren gebeurt via een stored procedure, en de te sorteren kolom wordt als parameter meegegeven:

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
19
20
21
22
23
DELIMITER $$

USE `mhmoever1_db2`$$

DROP PROCEDURE IF EXISTS `actie_get`$$

CREATE DEFINER=`mhmoever1`@`%` PROCEDURE `actie_get`(
    sort_by VARCHAR(45),
    asc_desc INT,
    include_afgerond INT
    )
BEGIN
    CASE sort_by
        WHEN 'Actiestatus' THEN SELECT * FROM acties WHERE afgerond = include_afgerond ORDER BY actiestatus_id DESC;
        WHEN 'Omgeving' THEN SELECT * FROM acties WHERE afgerond = include_afgerond ORDER BY omgeving_id DESC;
        WHEN 'Project' THEN SELECT * FROM acties WHERE afgerond = include_afgerond ORDER BY project_id DESC;
        WHEN 'Gedelegeerd aan' THEN SELECT * FROM acties WHERE afgerond = include_afgerond ORDER BY gedelegeerd_aan DESC;
        WHEN 'Datum actie' THEN SELECT * FROM acties WHERE afgerond = include_afgerond ORDER BY actie.datum_actie ASC;
        ELSE SELECT * FROM acties WHERE afgerond = include_afgerond ORDER BY datum_aangepast DESC;
    END CASE;
END$$

DELIMITER ;


Maar nu willen we dat de derde parameter 'asc_desc' aangeeft of de resultaten ascending of descending worden weergegeven. Dus 'ASC' of 'DESC' moet afhankelijk van die parameter worden geplaatst, hoe doen we dat zonder elke statement dubbel te hebben?
 
Er zijn nog geen reacties op dit bericht.



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.