갤러리 최신글에서 랜덤하게 이미지를 뽑아볼수 없을까 -무작위,난수,이미지
1.팁만든 동기
; 홈피 메인에 사진이 매번 볼때마다 보았던거 계속 나오니 식상하네요. 그렇다고 새로운 사진 올릴것도 없고 랜덤하게 바꿔보자 그럼 지루하지 않으리.......
2.랜덤하게 이미지 뽑아보자
중복되지 않는 난수발생 함수로 해볼래다가 커리에서 무작위로 뽑는 방법이 없을까 php스쿨에서 찾아
보니 있더군요(역시 검색은 필수죠...^^)
/lib/latest.lib.php 에서
***********************************************************************
// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
global $g4;
-------------중략------------------------
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
-------------중략------------------------
}
********************************** 이부분을 복사해서 random_latest함수를 추가함다
***********************************************************************
// 최신글 추출
function random_latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
global $g4;
-------------중략------------------------
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by rand() limit $rows ";
-------------중략------------------------
}
*************************************************이렇게 수정합니다
오더바이 다음에 rand()가 왔지요
사용법은
echo random_latest("스킨명",게시판명, 레코드수, 제목길이);
따로 함수를 만들지 않고 $options변수를 활용해서 할라면 자기 구미에 맞게 뜯어고치면되겟죠
참고로 중복되지 않는 난수 발생 함수알아두세요
function random_no($lim, $start, $end) { //중복되지 않는 난수 구하기
//예) $random = random_no(5, 1, 10); //$lim:난수의 개수,$start:난수의 시작 범위,$end:난수의 끝 범위
$z=0;
$num = array();
for ($i=0;$i<$lim;$i++) {
srand((double)microtime()*1000000);
$tmp=rand($start,$end);
//루프가 1번이상 돌았을 경우 - num에 등록된 숫자가 있는경우
if ($i>=1) {
for ($j=0;$j<sizeof($num);$j++) {
//기존의 숫자와 같으면
if ($tmp==$num[$j]) {
$z++;
}
}
if ($z<1) {
$num[]=$tmp;
}
else if($z>=1) {
$z=0;
$i--;
}
}// if
else {
$num[0]=$tmp;
}
}
; 홈피 메인에 사진이 매번 볼때마다 보았던거 계속 나오니 식상하네요. 그렇다고 새로운 사진 올릴것도 없고 랜덤하게 바꿔보자 그럼 지루하지 않으리.......
2.랜덤하게 이미지 뽑아보자
중복되지 않는 난수발생 함수로 해볼래다가 커리에서 무작위로 뽑는 방법이 없을까 php스쿨에서 찾아
보니 있더군요(역시 검색은 필수죠...^^)
/lib/latest.lib.php 에서
***********************************************************************
// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
global $g4;
-------------중략------------------------
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $rows ";
-------------중략------------------------
}
********************************** 이부분을 복사해서 random_latest함수를 추가함다
***********************************************************************
// 최신글 추출
function random_latest($skin_dir="", $bo_table, $rows=10, $subject_len=40, $options="")
{
global $g4;
-------------중략------------------------
$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by rand() limit $rows ";
-------------중략------------------------
}
*************************************************이렇게 수정합니다
오더바이 다음에 rand()가 왔지요
사용법은
echo random_latest("스킨명",게시판명, 레코드수, 제목길이);
따로 함수를 만들지 않고 $options변수를 활용해서 할라면 자기 구미에 맞게 뜯어고치면되겟죠
참고로 중복되지 않는 난수 발생 함수알아두세요
function random_no($lim, $start, $end) { //중복되지 않는 난수 구하기
//예) $random = random_no(5, 1, 10); //$lim:난수의 개수,$start:난수의 시작 범위,$end:난수의 끝 범위
$z=0;
$num = array();
for ($i=0;$i<$lim;$i++) {
srand((double)microtime()*1000000);
$tmp=rand($start,$end);
//루프가 1번이상 돌았을 경우 - num에 등록된 숫자가 있는경우
if ($i>=1) {
for ($j=0;$j<sizeof($num);$j++) {
//기존의 숫자와 같으면
if ($tmp==$num[$j]) {
$z++;
}
}
if ($z<1) {
$num[]=$tmp;
}
else if($z>=1) {
$z=0;
$i--;
}
}// if
else {
$num[0]=$tmp;
}
}
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 8개
좋은 팁 알려주셔서 감사합니다. ^^
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=27