pb avec array_walk()

Répondre
seb
le 22/12/2003 à 17:10
seb
Salut tlm !

Bon, j'ai besoin de votre passke ça fait un moment que je tourne en rond, j'en conclus donc que je dois pas aller dans la bonne direction ...

Explications :
je cherche à effectuer le classement d'un listing de matériel info qui s'affiche après requête SQL... l'idée est de pouvoir choisir 3 états pour chaque colonne de mon SELECT : " ASC" , " DESC" ou vide.
là où je galère c'est pour croiser les ORDER BY : classer mes matos par lieu ET par type matériel...

je bloque pour bien créer ma chaine ORDER BY.
J'ai finalement eu l'idée d'un tableau que je ne concaténerai qu'en toute fin, pour ne pas avoir le problème de la virgule... mais le GROS problème est d'éviter la redondance des ORDER BY (genre si j'ai déjà lbl_materiel ASC , ne pas rajouter lbl_materiel DESC , mais le remplacer) ...

Tant que mon $order était une chaine de caractère pas de pb, mais via un tableau, j'ai cherché à utiliser array_walk() et là, je capte pas le passage des arguments, pour faire mon str_replace()...

bon, je suis pas très clair passke ça fait un moment que je suis dessus : allez voir ici.
Bon, j'ai pas tout mis, vu que y'a plein de parties en commentaires ou en test : je voudrais juste savoir pkoi array_walk ne veut pas que je lui passe 4 arguments ?????

si je mets 4 argts à ma fonction changeSens et seulemnt 3 dans le array_walk , j'ai un warning avec arg 4 missing ..
Si je le rajoute, il me dit warning , wrong parameters count....

je galèèèèèèèèèèèèèère !!!

merci d'avance !
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
seb
le 22/12/2003 à 17:52
seb
bon désolé d'avoir posté , j'ai contourné le pb en travaillant :
1. dans le cas " ASC" : en faisant un join(",",$order)
et en faisant ensuite mon str_replace
2.pour passer de " DESC" à vide, en récupérant la valeur de la clé de mon order by dans le tableau avec array_search() et en faisant ensuite un unset() !

ça semble fonctionner , voici lewall pour ceux que ça intéresserait.... smiley

@+
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
seb
le 23/12/2003 à 09:14
seb
ben , ça c'est l'aspect final du ORDER BY que j'obtiens...

Là où je galérais , c'était pour y arriver !

1. 1er clic sur une colonne, je la classe par ASC

2. 1 er Clic sur une autre colonne , idem et j'ai donc un ORDER BY colonne1 ASC,colonne2 ASC

3. Maintenant je me dis "tiens, si je classais ma première colonne en DESC ?" : je clic et là : il faut donc que je teste si il n'existe pas déjà cette colonne dans le ORDER BY et , le cas échéant (comme ici) faire un str_replce du ASC en DESC

4.Comme je suis un utilisateur chiant, je veux pouvoir enlever tout classement à une colonne, par exemple colonne1 : cela se fait au 3e clic...
Dans mon exemple comme colonne1 était en première position, si je ne travaillais que sur une String, il me restait une virgule sur les bras et mon ORDER BY était tout foireux :" ORDER BY,colonne 2 ASC". D'où le tableau et mon post sur le array_walk()....

Mais il doit y avoir une méthode bien plus simple, seulement j'ai l'esprit tordu et je suis parti là-dessus passke c'est une évolution d'un code déjà existant...
Le principale c'est que ça fonctionne.. smiley
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours