쿼리 질문드립니다~
본문
<?
if (!defined('_GNUBOARD_')) exit;
function best_mb_group($skin_dir="", $rows=10, $best_mb_sort) {
global $g5;
$nowYmd = date("Y-m-d H:i:s"); # 오늘시간을 구합니다.
$time = time();
$startYmd = date("Y-m-d H:i:s",strtotime($day."-7day"));
if ($skin_dir) {
$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
} else {
$latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
}
$list = array();
$sql = " SELECT bo_table FROM {$g5['board_table']}";
$ress = sql_query($sql);
for($i=0, $ii = 0; $board=sql_fetch_array($ress); $ii++){
$tmp_write_table = $g5['write_prefix'] . $board['bo_table']; # 게시판 테이블 전체이름
$query = "SELECT * FROM (SELECT wr_name, COUNT(*) AS Cnt FROM $tmp_write_table WHERE wr_name != '최고관리자' AND wr_datetime BETWEEN '$startYmd' AND '$nowYmd' GROUP BY wr_name) AS tmpCnt ORDER BY tmpCnt.Cnt DESC LIMIT 10;";
$result = sql_query($query);
for($i = 0; $row = sql_fetch_array($result); $i++){
$list[$i] = get_list($row, $row, $row);
}
}
ob_start();
include "$latest_skin_path/latest_mb.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
주간 베스트 회원을 나름대로 구현해봤는데요 (izen님 스킨 베이스입니다)
head first 책으로 php 공부하면서 해봤는데
잘된건지 모르겠네요;;
결과는 제 뜻대로 나오긴 하는데...안에서는 이상하게 돌아가는것 같아서요 ㅋㅋ
for($i = 0; $row = sql_fetch_array($result); $i++){
$list[$i] = get_list($row, $row, $row);
}
위의 코드에서 $list[$i] = get_list($row, $row, $row);
이 코드가..제가 써놨지만 ㅋ 이해가 안되는부분인데요..
설명 부탁드려도 될까요?;
왜 $row 하나쓰면 argument 가 없다고 오류가 나는건지 모르겠네요;
common.lib.php 333번 줄을 참조하는것 같습니다만..
!-->!-->
답변 1
function get_list($write_row, $board, $skin_url, $subject_len=40)
get_list 함수는 위와 같이 $write_row, $board, $skin_url, $subject_len 총 4개의 인자를 받습니다.
하지만 $subject_len=40이라고 선언이 돼 있기 때문에 4번째 인자가 없을경우 자동을 40을 입력하기
때문에 필수로 필요한 인자는 총 3개
$write_row, $board, $skin_url이 필요합니다.
그래서 위에서 $row를 하나만 썼을경우 argument가 없다고 에러가 뜨는거에요.
답변을 작성하시기 전에 로그인 해주세요.