m

gms님의 그룹최신글에서 여분필드사용한 것만 불러오고자 합니다.

· 2006-06-05 (월) 21:08:04 · 1838 · 38
아래는 gms님의 그룹최신글에서 사용된 부분입니다.
링크1이 원자료입니다.
여기에 여분필드 wr-3을 사용한 자료만을 불러오고자 합니다.
빨간색이 추가부분입니다.
 
----------------------------------------------
 
수정전
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and  bo_use_search=1 and order by bo_order_search";
 
수정 후
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and  bo_use_search=1 and wr_3>0 order by bo_order_search";
 
----------------------------------------------
 
그랬더니 홈피의 답변은 다음과 같습니다.
 
-----------------------------------------------
 
select bo_table, bo_subject from g4_board where gr_id = 'Link' and bo_use_search=1 and wr_3>0 order by bo_order_search
 
1054 : Unknown column 'wr_3' in 'where clause'
 
error file : /gnuboard4/bbs/board.php
 
------------------------------------------------
 
and wr_3>0 이부분을 어떻게 해야하는지 고수님들의 가르침을 기다립니다.
 
|

댓글 38개

and wr_3 >= '0' order by

???
2006-06-05 (월) 21:16:19
$g4[board_table] 에는 wr_3처럼 여분필드등이 존재 하지를 않습니다.

해당 테이블의 필드명을 확인하신후 쿼리문을 작성하셔야 두번의 수고가 없습니다....^^

별도로 쿼리를 하셔야 할 듯 합니다.
ㅋㅋㅋㅋ

board_table 테이블인데 wr_3가 없을리 없잖아요~~
2006-06-05 (월) 21:25:33
확인해 보시기 바랍니다....^^
아무런 디비추가 없이 wr_1, wr_2 를 사용중입니다.
어딘가에 wr_10 까지 사용할 수 있다고 본 것 같아요..

http://jemulpo.net/gnuboard4/bbs/board.php?bo_table=Link4

링크에서 그림 아래의 사람이름과 졸업기수가 그것입니다.
2006-06-05 (월) 21:32:24
아마도 두번 쿼리를 해야 하는게 맞을듯 싶습니다.

아래 댓글과 마찬가지로 wr_3 필드를 못 찾지요?. 없으니까....^^

그룹에서 해당게시판을 끌고오고 그 게시판에서 wr_3 필드로 또 쿼리해야할듯....^^

도움을 드리지 못해 죄송합니다....
절대적으로 싱글쿼트를 찍어주세요~

http://www.sir.co.kr/bbs/tb.php/cm_free/108902
유아원님 감사합니다.
홈피의 그래도 답변은마찬가지입니다
-----------------------------------------------------

select bo_table, bo_subject from g4_board where gr_id = 'Link' and bo_use_search=1 and wr_3 >='0' order by bo_order_search

1054 : Unknown column 'wr_3' in 'where clause'

error file : /gnuboard4/bbs/board.php
두분께 감사드립니다.
확인해볼께요..
2006-06-05 (월) 21:27:26
wr_3 은 해당 게시판 테이블에 존재 합니다.

$g4[board_table] 에는 $bo_1 ~ $bo_10 이 존재한답니당....^^
$sql = " select bo_table, bo_subject from $g4[board_table] where gr_id = '테이블그룹명' and bo_use_search = '1' and bo_3 > '0' order by bo_order_search ";
홈피의 답변이 변했습니다.

-----------------------------------------------

1065 : Query was empty

error file : /gnuboard4/bbs/board.php
내공이 부족해서~ ^ ^

문제 되는 페이지의 경로와, 해당 페이지의 소스를 볼 수 있을까요~~
자료는 아래입니다.
원본과 수정본을 expend 에 넣고
원본은 헤드에서 <?=latest_group("cunic_group","Link", 15, 40);?> 요렇게 사용하고,
수정본은 테일에서 <?=latest_group_top("cunic_group","Link", 15, 40);?> 이렇게 했습니다.

링크는 http://jemulpo.net/gnuboard4/bbs/board.php?bo_table=Link3 에 링크된 곳 어디나입니다.

<?
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작
// 원본은 http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=1843
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group_top($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;

$list = array();
$limitrows = $rows;

$sql = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and bo_use_search = '1' and wr_3 >='0' order by bo_order_search ";
$rsgroup = sql_query($sqlgroup);

if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";

for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];

// 테이블 이름구함
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);

$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름

// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_3 desc " : " order by $orderby desc, wr_3 desc ";
$sql .= " limit $limitrows";

$result = sql_query($sql);

for ($i=0; $row = sql_fetch_array($result); $i++, $k++) {

if(!$orderby) $op_list[$k] = $row[wr_datetime];
else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
}

$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len);

$list[$k][bo_table] = $board[bo_table];
$list[$k][bo_subject] = $board[bo_subject];

$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
게시판에서 뽑는건가요...?

게시판의 상단 파일과 하단 파일에서 뽑으면 아래처럼 해야될거에요~

게시판에서는 $gr_id가 $board[gr_id]로 바뀌어야죠~

where gr_id = '$board[gr_id]' and bo_use_search

그리고 위 팁으로 사용해 본 바 썸네일은 뽑지 못한다는 점.

아래 링크를 보면 플록님의 코멘트가 있으니...

http://www.sir.co.kr/bbs/board.php?bo_table=g4_qa&wr_id=22787#c_22792

그래도 안 된다면~

내공이 부족하여~ ㅎㅎ
그룹에서 뽑습니다.
헤드에서 사용된 원본은 지금 이상태로 잘 작동됩니다.

유아원님 답글에 링크된 곳을 보면 위에서 네입클로바님의 지적과 같지 않나 생각됩니다.
2006-06-08 (목) 01:46:35
조기 위에 소스로 잘 작동(?)이 되신다고요?....

절대 안될텐데요....^^

이 질문이 해결된건지 아닌지 참으로 궁금합니다.

그룹에서 특정필드 사용글만 뽑기....^^ (위소스를 조금 손보면 가능합니다)
아무런 수정을 하지 않은 원본은 잘 돌아갑니다.
수정본은 안되요.

그누원본의 latest.lib.php 에 wr_3옵션을 넣어서 그룹최신글을 불러오면 작동은 되지만 썸네일에 문제가 발생합니다.
2006-06-10 (토) 16:42:54
음~~~! 전 이미지 쪽은 약해서 썸네일이 뭔지도 모른다는....ㅠ.ㅠ

수정본이 안되면 되게 해야지요......ㅎㅎ
음,음,,,ㅡ,.ㅡ
그럼 다시,,,
2006-06-10 (토) 16:44:03
수정본이며 로컬에서 테스트 된것입니다.

<?
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작
// 원본은 http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=1843
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group_top($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;

$list = array();
$limitrows = $rows;

$sql = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and bo_use_search = '1' order by bo_order_search ";
$rsgroup = sql_query($sql);

if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";

for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];

// 테이블 이름구함
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);

$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름

// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= "and wr_3 >= '0' "; //네잎클로버가 추가함
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? " order by wr_id desc " : " order by $orderby desc, wr_id desc ";
$sql .= " limit $limitrows";

$result = sql_query($sql);

for ($i=0; $row = sql_fetch_array($result); $i++, $k++) {

if(!$orderby) $op_list[$k] = $row[wr_datetime];
else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
}

$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len);

$list[$k][bo_table] = $board[bo_table];
$list[$k][bo_subject] = $board[bo_subject];

$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>
으 으 으 으....
와 와 와 와....돌아...가....
아 아 아 아 아 아 아 아 아....기절....
2006-06-10 (토) 17:10:08
무슨 말씀 이신지요?.....

왠 기절을?
일단 돌아갑니다.
꼼꼼히 살펴보겠습니다.
정열순서를 wr_3으로만 할 수는 없는가요?
아래와같이 수정하니 됩니다.
근데, desc로만 됩니다.
어디선가 가능하게해주는 부분이 있을텐데.....

-------------------------------
수정전
if(!$orderby) $op_list[$k] = $row[wr_datetime];
else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
}


수정후
if(!$orderby) $op_list[$k] = $row[wr_3];
else {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_3];
}
정렬부분도 찾았습니다.
소스의 마지막 부분에 있더군요...
아래에서 DESC 또는 ASC 로 고치면 됩니다.
불러오기에서 옵션설정이 있는 것 같은데 작동을 안합니다.

----------------------------------

if($k>0) array_multisort($op_list, SORT_ASC, $list);
if($k>$rows) array_splice($list, $rows);
그동안 좋은 결실을 맺게해주셔서 감사드립니다.....
거듭 감사드립니다.
function latest_group_top($skin_dir="", $gr_id,

이부분도 바뀌어야겠죠~??
똑같이 만들어놓고 지금 실험해봐야겠네요~ ㅡ.ㅡ,,
제 홈에서도 오류나네요 ㅋㅋ

해당 팁은 완벽이 아니었나봅니다~~~

플록님의 팁을 이용해서 테스트 마쳤습니다.

http://www.morssola.co.kr/data/bbs/board.php?bo_table=gtest
조건은 이렇게 걸면 되겠죠~

$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_1 = 'board' ";

bo_1에 board 라고 입력된 것 뽑기~
유아원님!!
늦게까지 관심가져주셔서 감사합니다.

그런데, 이것은 게시판 설정에서 설정한 것을 뽑는 것이지요?
그러니까 설정해준 특정게시판의 최신글을 뽑는 것...

저는 여러게시판의 자료중에서 특정필드를 사용한 자료만을 뽑고자 합니다.
최근 게시물에서 뽑는 것 입니다. ^ ^

테스트 링크에 상단의 최신글은,

그룹명 테이블명 제목명 입니다. ^ ^
보고게시군요....
혹시나 해서 유아원님의 링크해준 플록님의 자료를 그대로 사용해보았습니다.
홈피의 답글은 다음과 간습니다.

-------------------------------------------------------------------

select a.*, b.bo_subject, c.gr_subject, c.gr_id from g4_board_new a, g4_board b, g4_group c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' and b.gr_id = 'Link' and a.wr_id = a.wr_parent order by limit 40

1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 40' at line 4

error file : /gnuboard4/bbs/board.php
bo_1에 board 라고 입력된 것 뽑기~

요부분을 write에서도 입력가능한가요?
// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";


==>

// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 and wr_3 > 0";
롤로님!!

님께서 말씀하신대로 해도 되질 않습니다.

$sql = "select * from $tmp_write_table where wr_is_comment = 0 and wr_3 > 0";
$sql = "select * from $tmp_write_table where wr_is_comment = '0' and wr_3 > '0'";
$sql = "select * from $tmp_write_table where wr_is_comment = '0' and wr_3 >= '0'";

어느것을 사용해도 마찬가지입니다.
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
06-06-06 조회 1,434
06-06-06 조회 1,658
06-06-06 조회 1,348
06-06-06 조회 1,625
06-06-06 조회 1,643
06-06-06 조회 1,507
06-06-06 조회 1,614
06-06-06 조회 1,614
06-06-06 조회 1,703
06-06-06 조회 1,638
06-06-06 조회 1,512
06-06-06 조회 1,850
06-06-06 조회 1,609
06-06-06 조회 2,176
06-06-06 조회 1,637
06-06-05 조회 1,680
06-06-05 조회 1,839
06-06-05 조회 1,612
06-06-05 조회 2,533
06-06-05 조회 1,644