리스트에서 정렬문제 정보
그누보드 리스트에서 정렬문제본문
http://www.sir.co.kr/?doc=bbs/gnuboard.php&bo_table=qa&sselect=wr_name&stext=morning&soperator=0&page=2&wr_id=14898
정렬에 대한 문제인대요, 위에 링크에 링크된 곳과는 다른 곳입니다.
위의 링크에서 완두콩님의 말씀에 의하면 서버에서 mysql이 한글지원되지 않기 때문이라고 합니다.
SHOW VARIABLES 쿼리 날려보면...
character_set latin1로 나오더군요.
서버관리자에게 요청을 했지만 아직 응답이 없습니다.
위의 링크부분을 간단히 요약하면
bbs/gblist.php 69번째줄쯤에...
$sql_order = " order by $ssort $sorder ";
이런식으로 되있는부분을.... 아래와 같이 고쳤습니다.
if($ssort == "wr_subject")
$ssort_tmp = "BINARY wr_subject";
else
$ssort_tmp = $ssort;
$sql_order = " order by $ssort_tmp $sorder ";
결과가 좋아서 제목정렬은 잘 됩니다.
한가지를 더 추가하고 싶습니다.
게시판에서 옵션1을 사용했습니다. 그부분은 wr_1인 것 같습니다.
이것도 정렬에 넣었는데 이것이 안되는군요.
위의 수정된 내용에 wr_1 하나 더 넣으려면 어떻게 해야 하는가요?
정렬에 대한 문제인대요, 위에 링크에 링크된 곳과는 다른 곳입니다.
위의 링크에서 완두콩님의 말씀에 의하면 서버에서 mysql이 한글지원되지 않기 때문이라고 합니다.
SHOW VARIABLES 쿼리 날려보면...
character_set latin1로 나오더군요.
서버관리자에게 요청을 했지만 아직 응답이 없습니다.
위의 링크부분을 간단히 요약하면
bbs/gblist.php 69번째줄쯤에...
$sql_order = " order by $ssort $sorder ";
이런식으로 되있는부분을.... 아래와 같이 고쳤습니다.
if($ssort == "wr_subject")
$ssort_tmp = "BINARY wr_subject";
else
$ssort_tmp = $ssort;
$sql_order = " order by $ssort_tmp $sorder ";
결과가 좋아서 제목정렬은 잘 됩니다.
한가지를 더 추가하고 싶습니다.
게시판에서 옵션1을 사용했습니다. 그부분은 wr_1인 것 같습니다.
이것도 정렬에 넣었는데 이것이 안되는군요.
위의 수정된 내용에 wr_1 하나 더 넣으려면 어떻게 해야 하는가요?
댓글 전체
if (!$ssort) {
$ssort = "wr_notice, wr_num, wr_reply";
$sorder = "";
}
if($ssort == "wr_1"){
$ssort_tmp = "BINARY wr_1";
}else if($ssort == "wr_subject"){
$ssort_tmp = "BINARY wr_subject";
}else{
$ssort_tmp = $ssort;
}
$sql_order = " order by $ssort_tmp $sorder ";
위가 정렬부분 전체입니다.
$ssort = "wr_notice, wr_num, wr_reply";
$sorder = "";
}
if($ssort == "wr_1"){
$ssort_tmp = "BINARY wr_1";
}else if($ssort == "wr_subject"){
$ssort_tmp = "BINARY wr_subject";
}else{
$ssort_tmp = $ssort;
}
$sql_order = " order by $ssort_tmp $sorder ";
위가 정렬부분 전체입니다.
제 문제의 핵심은 mysql에서 한글 인식이 안되어서 한글상태에서의 정렬이 안된다는 것입니다.
안녕하세요?
몇시간 밖에 못주무신 것 같아요...
if($ssort == "wr_1"){
$ssort_tmp = "BINARY wr_1";
}else if($ssort == "wr_subject"){
$ssort_tmp = "BINARY wr_subject";
}else{
$ssort_tmp = $ssort;
}
$sql_order = " order by $ssort_tmp $sorder ";
이렇게하라는 말씀인가요?
작동되는군요....
다시 해야된다면 문법에 맞게 좋은 가르침 부탁드립니다.
저는 완전히 백지상태입니다.
몇시간 밖에 못주무신 것 같아요...
if($ssort == "wr_1"){
$ssort_tmp = "BINARY wr_1";
}else if($ssort == "wr_subject"){
$ssort_tmp = "BINARY wr_subject";
}else{
$ssort_tmp = $ssort;
}
$sql_order = " order by $ssort_tmp $sorder ";
이렇게하라는 말씀인가요?
작동되는군요....
다시 해야된다면 문법에 맞게 좋은 가르침 부탁드립니다.
저는 완전히 백지상태입니다.
if($ssort){ // 정렬이면 -> 정렬인 경우는 넘어오는 변수가 1가지므로 2번째 방법은 안하는게 좋을듯..
if($ssort == "wr_1"){
$ssort_tmp = " wr_1";
}else if($ssort == "wr_subject"){
$ssort_tmp = " wr_subject";
}else{
$ssort_tmp = $ssort;
}
}
if($ssort == "wr_1"){
$ssort_tmp = " wr_1";
}else if($ssort == "wr_subject"){
$ssort_tmp = " wr_subject";
}else{
$ssort_tmp = $ssort;
}
}
제생각에는 2번적용이 빠를 것 같읕데...
죄송하지만 직접 만들어서 보여주실 수는 없는가요?
저는 문외한입니다.
고수님들이 이리 요걸 요렇게 해라 조걸 조렇게 해라하면 고대로 옮겨적을 뿐입니다.
죄송하지만 위에서 1,2번을 적용해서 보여주세요....
저는 문외한입니다.
고수님들이 이리 요걸 요렇게 해라 조걸 조렇게 해라하면 고대로 옮겨적을 뿐입니다.
죄송하지만 위에서 1,2번을 적용해서 보여주세요....
2가지 방법이 있겠네요..
1. 조건문으로 $ssort 가 wr_subject 인지 wr_1 인지를 비교해서 $ssort_tmp 쿼리를 조정하는것과
2. 붙이기 접두어인 . 을 이용해서 조건문 2개를 만드는 방법이 있겠네요..
* 그리고 위에 문법이 조금 안맞는것 같은데요..
if($ssort){ // 정렬이면
if($ssort == "비교문"){
이렇게 조건문을 붙여야 정확할것 같습니다...
1. 조건문으로 $ssort 가 wr_subject 인지 wr_1 인지를 비교해서 $ssort_tmp 쿼리를 조정하는것과
2. 붙이기 접두어인 . 을 이용해서 조건문 2개를 만드는 방법이 있겠네요..
* 그리고 위에 문법이 조금 안맞는것 같은데요..
if($ssort){ // 정렬이면
if($ssort == "비교문"){
이렇게 조건문을 붙여야 정확할것 같습니다...
sjsjin 님!!
님이 가르쳐주신 틀에 맞추어서 아래처럼 했습니다. 잘 작동은 합니다.
감사드리구요...제대로 했는지 한번만 더 확인해주시길 부탁드립니다.
아래에서 더 추가하려면 --els if--부분만 여러번 반복해도 될 것 같더군요.
if($ssort == "wr_1"){
$ssort_tmp = "BINARY wr_1";
$sql_order = " order by $ssort_tmp $sorder ";
}else if($ssort == "wr_subject"){
$ssort_tmp = "BINARY wr_subject";
$sql_order = " order by $ssort_tmp $sorder ";
}else{
$ssort_tmp = $ssort;
$sql_order = " order by $ssort $sorder ";
}
위에서 마지막의 $sql_order = " order by $ssort $sorder "; 부분은 $sql_order = " order by $ssort_tmp $sorder "; 로 해도 되더군요. 이것도 어느것이 맞는지 확인부탁드립니다.
다시 한번 감사드립니다.
님이 가르쳐주신 틀에 맞추어서 아래처럼 했습니다. 잘 작동은 합니다.
감사드리구요...제대로 했는지 한번만 더 확인해주시길 부탁드립니다.
아래에서 더 추가하려면 --els if--부분만 여러번 반복해도 될 것 같더군요.
if($ssort == "wr_1"){
$ssort_tmp = "BINARY wr_1";
$sql_order = " order by $ssort_tmp $sorder ";
}else if($ssort == "wr_subject"){
$ssort_tmp = "BINARY wr_subject";
$sql_order = " order by $ssort_tmp $sorder ";
}else{
$ssort_tmp = $ssort;
$sql_order = " order by $ssort $sorder ";
}
위에서 마지막의 $sql_order = " order by $ssort $sorder "; 부분은 $sql_order = " order by $ssort_tmp $sorder "; 로 해도 되더군요. 이것도 어느것이 맞는지 확인부탁드립니다.
다시 한번 감사드립니다.
마지막은 편하신대로 하면 됩니다..
그런데 문법은 처음 사용하던 문법이네요..버그가 있기 때문에 제가 일부러 위에걸로 예를 든건데요..
if($ssort){ <- 이게 먼저 들어가고 다시,
if($ssort == "wr_1){ 어쩌고....
위처럼 $ssort 인지를 처음한번 확인하고 다시 아래에서 확인하는건 간혹가다 튕기는 경우가 있기 때문입니다..
그래서 $ssort 면 무조건 스톱시키고 안에서 다시 조건문으로 비교하게 하는 거지요..
그리고 조건문을 많이 달면 않좋습니다. for,while,if,swich 문등이 비슷비슷하면서도 괜히 있는게 아니거든요..ㅡㅡ;
정규식도 마찬가지고....자신이 써보고 가장 좋다고 생각되는걸 쓰면 됩니다..손에 익히는게 중요하니까요..
그런데 문법은 처음 사용하던 문법이네요..버그가 있기 때문에 제가 일부러 위에걸로 예를 든건데요..
if($ssort){ <- 이게 먼저 들어가고 다시,
if($ssort == "wr_1){ 어쩌고....
위처럼 $ssort 인지를 처음한번 확인하고 다시 아래에서 확인하는건 간혹가다 튕기는 경우가 있기 때문입니다..
그래서 $ssort 면 무조건 스톱시키고 안에서 다시 조건문으로 비교하게 하는 거지요..
그리고 조건문을 많이 달면 않좋습니다. for,while,if,swich 문등이 비슷비슷하면서도 괜히 있는게 아니거든요..ㅡㅡ;
정규식도 마찬가지고....자신이 써보고 가장 좋다고 생각되는걸 쓰면 됩니다..손에 익히는게 중요하니까요..