2012-10-11 2 views
0

mysql 테이블에 가변 개수의 행이 있습니다. 중요한 열의 내용에 관계없이 나타나는 순서를 변경하려면 가장 좋은 방법은 무엇입니까? 예를 들어동적 순서 지정을위한 order_by 열을 관리하는 방법, mysql 및 PHP

, 내가있는 경우 :

id , content, order-by 
1 , d  , 1 
2 , a  , 2 
3 , v  , 3 
4 , i  , 4 
5 , d  , 5 

과에 필드의 순서를 변경하려면 :

id , content, order-by 
1 , d  , 3 
2 , a  , 4 
3 , v  , 1 
4 , i  , 2 
5 , d  , 5 

합병증 : id로 분류

id , content, order-by 
3 , v  , 1 
4 , i  , 2 
5 , d  , 3 
2 , a  , 4 
1 , d  , 5 

의 모습 수동으로 또는 프로그래밍 방식으로 순서, 삭제 또는 addi의 변경에 영향을받는 각 행을 업데이트해야한다는 것입니다. . 이 기능을 구현하기 위해 누군가 이미 수행 한 기능이나 스크립트가 없습니까?

시간 내 주셔서 감사합니다.

+1

당신이 그것을 쓰러 뜨리려면 적어도 이유를 말해야합니다. –

답변

1

프로그램이 순서를 변경할 때마다 order_by 열을 올바른 order_by 값으로 업데이트해야합니다. 나는 드래그 앤 드롭으로 페이지 주문을 변경할 수있는 어셈블리 프로그램을 개발했다. 위치는 JS 변수에서 저장 될 때까지 유지됩니다. 제출시 수정 된 주문이 테이블에서 업데이트됩니다.

그것은 모든하지만 테이블의 크기에 따라 달라집니다
SELECT * from table order by order_by; 

, 그리고 당신이 순서에 달성하기 위해 노력하고있다을 : 당신이 테이블에 액세스 할 때

당신은해야한다.

@Matt Gibson이 주석에서 언급했듯이 목록의 끌어서 놓기 순서를 구현하려는 경우 jQuery UI Sortable을 사용할 수 있습니다. -

var result = $('#sortable').sortable('toArray'); 
$.post(
     url, 
     "order="+result 
); 

PHP URL의 위치 값을 받아 처리하십시오.

+1

일부 자바 스크립트 라이브러리에는이 기술에 대한 도움말이 내장되어 있습니다. 예를 들어 jQuery UI의 Sortable에는 [Serialize] (http://api.jqueryui.com/sortable/#method-serialize) 메서드가 있습니다.이 메서드는 서버 코드에 대해 서버에서 새로운 순서를 쉽게 생성합니다. UPDATE 문을에서 구성하십시오. –

+0

@Matt Gibson - jquery UI 정렬 가능, Ajax 게시와 결합하여 트릭을 +1 함 – janenz00

관련 문제