Voici mon problème :
Je souhaite créer une procédure stockée qui prend comme paramètre en entrée, le nom de la colonne sur laquel je souhaite effectué mon trie.
De ce fait, dans mon code PHP je pourrais directement appeller la procédure stockée avec le trie que je désire.
Malheuresement, ça ne fonctionne pas, voici le code sql de ma procédure stockée :
CREATE PROCEDURE RECUP_STATIONS (trie VARCHAR(30))
BEGIN
SELECT `stations_mesures`.`id`
,`centres_controles`.`nom`
,`stations_mesures`.`numero` ,`stations_mesures`.`longitude`
,`stations_mesures`.`latitude`
,`stations_mesures`.`rayon`
,`stations_mesures`.`type`
FROM `stations_mesures`,`proprietaires`,`centres_controles`
WHERE `stations_mesures`.`fk_adresse`=`adresses`.`id`
AND `stations_mesures`.`fk_proprietaire`=`proprietaires`.`id`
AND `contacts`.`fk_proprietaire`=`proprietaires`.`id`
AND `centres_controles` .`id`=`stations_mesures`.`fk_centre`
GROUP BY `stations_mesures`.`nom`
ORDER BY trie ASC;
END |
Si je remplace "trie" dans ma procédure stockée par "latitude" ou "type" par exemple, cela fonctionne correctement, ce qui est normal.
Par contre impossible de la faire marcher, avec le paramètre d'entré "trie VARCHAR(30)" correspondant au nom de la colonne sur lequel je veux efectuer le trie.
Il y a t'il une solution ?
Ou dois-je faire autant de procédure stockée que de trie désiré ?
Si quelqu'un à la solution, merci de me répondre.
NB: Mysql 5.0.17 PHP5 Apache2
Partager