순서바꾸고 출력어떻게하나요?

순서바꾸고 출력어떻게하나요?

QA

순서바꾸고 출력어떻게하나요?

본문

$sql="select * from news where hotnews='1' order by news_order asc";
$order = $_POST['order'];
$list = sql_query($sql);
$i=0;
while($row=sql_fetch_array($list)){
  $n_num=$row['n_num'];
  if($row['news_order'] != $order[$i]){
    echo $order[$i].$row['news_order']."ssss</br>";
    $sql= "update news set news_order ='$order[$i]' where n_num='$n_num'";
    sql_query($sql);
  }else{
    echo $order[$i].$row['news_order']."xxxx</br>";
  }
  $i++;
}

 

3696040806_1639372208.8032.png

 

값을 넣을때마다 news_order값이 1씩 증가해서 news_order에 각각 순서대로 1,2,3,4 이런식으로 들어갔는데 1,5,6으로 이미지 옆에 표시된게 news_order라는 컬럼값인데 중간에 값없는건 컬럼삭제해서 이런거고

순서변경을 통해 위치가 이동이되고 순서변경을 눌렀을때 위에 sql문이 작동하는데 한계단씩 이동은 정상적으로 news_order값이 변경되서 위치가 바뀌는데 두단계씩 예를들어 맨밑에꺼를 맨위로 올리면 가운대로 이동합니다.. 어떻게 해야될까요?

이 질문에 댓글 쓰기 :

답변 4

업데이트를 한번누르면 한번씩 실행 하게 하면 될것같은데요 ^^

간단하게 업데이트 파일 만들어서 순서 와 그리고 그위에거 를 고유아이디로 업데이트작업을 하심이 제일 나을것같아요 제가 코드를 전체를 몰라서 뭐라고 말은 못하겠지만 그렇겠 하심이 나을것같아요^^

2단계이상의 순서변경시 db 에 정상적으로 변경 사항이 적용되는지 우선 확인이 필요하겠는데요?

정렬이 잘안되시면  news_order 이 varchar 로되어있으면    order by news_order*1 asc  로하시면 정렬될것입니다.

정렬문제보단 sql문 문제인거같아요
순서대로 1,2,3,4가 order이라는 각 컬럼에 값이있으면 업데이트문을 작성할때 한개씩 이동하고 순서저장을 눌렀을땐 제대로 들어가지만 위에 이미지처럼 3번째를 첫번째로 올려버리면 순서가 이상하게 꼬여서 값이 업데이트가되네요.. 이 방법을 해결하고싶은데 도저히 머리로는 정리가안되네요
while부분에 있는 sql문에 값을 제대로 넣어야되는데 이 방식이아닌거 같아서 힘드네요..
간단히 설명하면 페이지에서 순서를 변경한상태로 순서저장버튼을 누르면 위에 sql문이 실행되는데
tr위치가 두단계이상 위치를 변경하면 같이 다 밀려서 예상과 다른값으로 저장이되네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 18
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT