ヤフオクなどで、ソートした順が重畳できないのがすごく気に食わず、
なんとかして、それを重畳させるべく書いてみました。
SQL文に対して、Desc、Ascをつける順位を重畳する際に引き継ぎます。
ヤフオクでたとえれば、値段でDescして、そのページで、時間Descをすると、
値段Desc→時間Descという表示になるわけです。
いかがそれを作る上で書いたぐちゃぐちゃ関数。
$hena 前回の状態を引き継ぐ引数
$henb 今回発行するsqlクエリー文
$henc imageの状態:UpやDownで昇順、降順を示す
$hend ソートフラグ:もし全項目フラグなしなら、あるカラムでソート
$hene ソート項目
$henf 現URL
$heng リンク生成URL:このリンク中に次$henaになるべきモノを埋める
$henh ソートするカラム名
function make_search($hena,&$henb,&$henc,&$hend,$hene,&$henf,&$heng,$henh){
$asc = $hene."=asc";
$desc = $hene."=desc";
if($hena=="desc"){
if(ereg("C$",$henb)){
$henb .= ", ".$henh." DESC";
}else{
$henb .= " ".$henh." DESC";
}
$henc = '<img src="./image/down.gif" class="img">';
$heng = ereg_replace($desc,$asc,$henf);
$hend = "1";
}elseif($hena=="asc"){
if(ereg("C$",$henb)){
$henb .= ", ".$henh." ASC";
}else{
$henb .= " ".$henh." ASC";
}
$henc = '<img src="./image/up.gif" class="img">';
$delete_asc = "&".$asc;
$heng = ereg_replace($delete_asc,"",$henf);
$hend = "1";
}else{
$henc = "";
$hend = "0";
}
}
また再考するように、と思って書いている今、すでにだいぶ時間がたっていてわからない…
かなりだめだめ。
ソート順序をURLから切り出し配列に格納。
その配列にforeachして、順序通り、Desc、Ascを指定する、というわけなのですが…
汚すぎて全体をさらす気にはなれませんので、
そのうちきっときれいにして、もう一度、アップします。

最近のコメント