2012年7月23日 星期一

PHP資料排序程式

PHP資料排序程式可以讓資料
上移1格、下移1格、上移5格、下移5格,
常用於後台資料排序。
//重新排序(移動位置)
if($_POST[job]!=''){
    $job=$_POST['job'];
    $id=$_POST['id'];
    $sortz=$_POST['sort'];
   
    switch ($job){
        case "up1": //上移1格
            $sql="update class_product set sort=$sortz where sort=$sortz-1";
            mysql_query($sql);
            $sql="update class_product set sort=$sortz-1 where id=$id";
            mysql_query($sql);
            break;
        case "down1": //下移1格
            $sql="update class_product set sort=$sortz where sort=$sortz+1";
            mysql_query($sql);
            $sql="update class_product set sort=$sortz+1 where id=$id";
            mysql_query($sql);
            break;
        case "up5": //上移5格
            $sortu5=array(); //原本排序的id
            // $sortd5st=array(); //原本排序的sort
            $sql="select * from class_product order by sort";
            $s=mysql_query($sql);
            while($s2=mysql_fetch_assoc($s)){
                array_push($sortu5,$s2[id]); //把id放進陣列
                // array_push($sortd5st,$s2[sort]); //把sort放進陣列
            }
            // $st=count($sort);
            $j=$sortz;
            $sortz1=$sortz-2; //注意:$sortu5陣列索引值從0開始
            $sortz5=$sortz-6;
            for($i=$sortz1;$i>=$sortz5;$i--){ //從選中項目的上一個項目的sort開始到sort-5
                if($sortu5[$i]!=''){
                    $sql="update class_product set sort=$j where id=$sortu5[$i]"; //把選中項目之上的5個項目的sort+1
                    mysql_query($sql);
                    $j--;
                }else{
                    break;
                }
            }
            $sx=$sortz-5;
            if($sx<0){
                $sx=0;
            }
            $sql="update class_product set sort=$sx where id=$id"; //把選中項目的sort-5
            mysql_query($sql);
            break;
        case "down5": //下移5格
            $sortd5=array(); //原本排序的id
            // $sortd5st=array(); //原本排序的sort
            $sql="select * from class_product order by sort";
            $s=mysql_query($sql);
            while($s2=mysql_fetch_assoc($s)){
                array_push($sortd5,$s2[id]); //把id放進陣列
                // array_push($sortd5st,$s2[sort]); //把sort放進陣列
            }
            // $st=count($sort);
            $j=$sortz;
            $sortz1=$sortz; //注意:$sortd5陣列索引值從0開始
            $sortz5=$sortz+4;
            for($i=$sortz1;$i<=$sortz5;$i++){ //從選中項目的下一個項目的sort開始到sort+5
                if($sortd5[$i]!=''){
                    $sql="update class_product set sort=$j where id=$sortd5[$i]"; //把選中項目之下的5個項目的sort-1
                    mysql_query($sql);
                    $j++;
                }else{
                    break;
                }
            }
            $sql="update class_product set sort=$sortz+5 where id=$id"; //把選中項目的sort+5
            mysql_query($sql);
            break;
        // default:
            // $lanx='ccc';
    }
    echo '1';
    exit;
}

//整理sort排序(1~n)
$sort=array(); //原本的排序sort與id
$sql="select * from class_product order by sort";
$s=mysql_query($sql);
while($s2=mysql_fetch_assoc($s)){
    array_push($sort,$s2[id]); //把id放進陣列
}
$st=count($sort);
$j=1;
for($i=0;$i<$st;$i++){
    $sql="update class_product set sort=$j where id=$sort[$i]";
    mysql_query($sql);
    $j++;
}

**********************

//排序
$('#sort img').click(function(){
    var job=$(this).attr('class');
    var id=$(this).attr('title');
    var sort=$(this).attr('alt');

    $('#back').load('product_class.php',{job:job,id:id,sort:sort},function(e){
        if(e=='1'){
            location.href='product_class.php';
        }else if(e=='0'){
            // /*alert('');*/
        }
    });
});
   
**********************

<td align="center">
    <?php if($q2[sort]!=1){echo '<img src="images/order_up1.gif" width="22" height="23" class="up1" alt="'.$q2[sort].'" title="'.$q2[id].'"/>';}?>
    <?php if($q2[sort]!=$q3){echo '<img src="images/order_down1.gif" width="22" height="23" class="down1" alt="'.$q2[sort].'" title="'.$q2[id].'"/>';}?>
    <?php if($q2[sort]!=1){echo '<img src="images/order_up5.gif" width="22" height="23" class="up5" alt="'.$q2[sort].'" title="'.$q2[id].'"/>';}?>
    <?php if($q2[sort]!=$q3){echo '<img src="images/order_down5.gif" width="22" height="23" class="down5" alt="'.$q2[sort].'" title="'.$q2[id].'"/>';}?>
</td>