여분필드 관련 질문입니다. 채택완료
게시판 등록으로 메인 배너 표시 여부랑 순서 여부를 관리하는 게시판 스킨을 만들고있습니다.
wr_1 는 표시 여부로서 Y/N 라디오버튼으로 Y일때만 메인 배너에 나오게 했습니다.
문제는 wr_2 인데요. wr_2는 셀렉트박스를 이용하고 있습니다.
wr_2는 순서로서, 배너의 순서를 00, 01 ~ 12 번까지 정해서 순서대로 나오게 하고 싶은데..
00 번은 표시 여부가 N일때 쓰고. 01 ~ 12번은 Y일때 쓰는겁니다.
여기서 예를 들어서 다른 게시글에서 Y이고 01 ~ 10 번까지 이미 존재한다면..
새로 글쓰기에서는 00, 11, 12 번만 선택할 수 있게 하고 싶습니다.
그리고 01 ~ 12번 모두 존재한다면 00만 나오게 되겠죠.
즉 wr_1이 Y인 글들은 wr_2가 서로 중복이 되지 않게 하고 싶습니다.
sql문을 잘 짜야하는것 같은데.. 방법이 떠오르지 않네요.
답변 1개
$test_array = array("00","01","02",......,"12"); $result = sql_query(" select wr_2 from 테이블 where wr_1 = 'Y' group by wr_2");
for($i=0; $row = sql_fetch_array($result); $i++){ if(in_array($row['wr_2'], $test_array)){ $key = array_search($row['wr_2'], $test_array); unset( $test_array[$key] ); } } sort($test_array);
echo " for($i=0; $i < count($test_array); $i++){ echo ""; } echo "";
답변에 대한 댓글 2개
원래 써져있던 글을 수정할때 자신의 글 번호를 가져오지 못하는 문제가 있습니다.
그래서
[code]
$test_array = array("00","01","02","03","04","05","06","07","08","09","10","11","12");
$result = sql_query(" select wr_2 from 테이블 where wr_1 = 'Y' group by wr_2 ");
for($i=0; $row = sql_fetch_array($result); $i++){
if(in_array($row['wr_2'], $test_array)){
if($row['wr_2'] != $write['wr_2']){
$key = array_search($row['wr_2'], $test_array);
unset( $test_array[$key] );
}
}
}
sort($test_array);
echo "<select name='wr_2' required>";
for($i=0; $i < count($test_array); $i++){
if($write['wr_2'] == $test_array[$i]){
echo "<option value='".$test_array[$i]."' selected='selected'>".$test_array[$i]."</option>";
} else {
echo "<option value='".$test_array[$i]."'>".$test_array[$i]."</option>";
}
}
echo "</select>";
[/code]
이런 방식으로 수정해서 쓰지 않는 번호와 자신의 글 번호만 나오게 적용했습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
필요한 부분은 따로 수정하면 될것 같네요.