다른분이 만드신 랜덤출력 소스입니다. 출력방식이 wr_id값을 받아서 랜덤으로 출력하는 방식인데, 삭제된 게시물까지 불러오네요..
여기서 삭제된 게시물(wr_id) 안불러오고 싶은데, 어딜 수정해줘야 될까요?
Copy
<?php$random_a = $_GET['bo_table']; $wr_max_query = mysql_query('SELECT MAX(wr_id) AS wr_max FROM g5_write_'.$random_a; //가장높은번호글체크$wr_max_q = mysql_fetch_array($wr_max_query);$wr_max = $wr_max_q[wr_max];$wr_rand = rand(1,$wr_max); $wr_con_query = mysql_query('SELECT wr_is_comment wr_name wr_content FROM g5_write_'.$random_a.' where wr_id = '.$wr_rand); $wr_con = mysql_fetch_array($wr_con_query);if ($wr_con[wr_is_comment] == 1) { $wr_con_t = 'comment'; ?>
랜덤출력소스입니다..
답변 3개 / 댓글 3개
채택된 답변
+20 포인트
2015-02-06 (금) 12:55:03
Copy
<?php$sql_board = "select * from g5_board";$res_board = mysql_query($sql_board);$total_recordes = mysql_num_rows($res_board);for ($j=0; $row_board=sql_fetch_array($res_board); $j++) { if ($total_recordes-1 == $j) { $sql_data .= "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 ";} else if ($j == 0){ $sql_data = "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 union all " ;} else { $sql_data .= "select * from g5_write_".$row_board[bo_table]." where wr_is_comment=0 union all " ;}} $sql_data .= " order by rand() limit 10";$res_data = mysql_query($sql_data);for ($i=0; $row=sql_fetch_array($res_data); $i++) {echo $row[wr_subject]."<br>";}?>
나머지는 알아서 수정하시길 바라요 ㅋ
limit 바꿔주시면 갯수 바뀝니다
질문있음 댓글 남겨주세요
답변에 대한 댓글 1개
2015-02-06 (금) 04:13:21
근데 이거 왜 이런방식으로 하는건가요? 쿼리자체에서 order by rand() 로 랜덤출력하면 되는데...
답변에 대한 댓글 1개
2015-02-06 (금) 12:21:25
초보라 인터넷에 올려진소스 주워 사용하다보니 랜덤소스중에 저게 유일하게 되서 사용하게 됐습니다..
phpmyadmin 쿼리에서 select * from g5_write_humor where wr_is_comment=0 order by rand() limit 1 이렇게 하면 한개씩 출력되긴하는데, 이걸 제가올린소스에 수정해 삽입하면 되나요??
phpmyadmin 쿼리에서 select * from g5_write_humor where wr_is_comment=0 order by rand() limit 1 이렇게 하면 한개씩 출력되긴하는데, 이걸 제가올린소스에 수정해 삽입하면 되나요??
2015-02-05 (목) 18:51:44
삭제되면 db에서 삭제되지 않나요?
만약 db에서 삭제되지 않고 뭔가가 남아있다면 그걸 걸러내면 되긴 합니다..
Copy
$wr_con_query = mysql_query('SELECT wr_is_comment wr_name wr_content FROM g5_write_'.$random_a.' where wr_id = '.$wr_rand.' and wr_name != '' and wr_content != '' ");
이런형태로..
답변에 대한 댓글 1개
2015-02-05 (목) 19:45:25
소스적용하면 $wr_con부분부터 적용이 안되서(흰색으로나오네요) 레이아웃이깨지네요.. 아마도 랜덤소스가 게시물이 1000개라면 삭제여부에 상관없이 1~1000의 게시물번호중에서 한개 골라주는 형식인 듯 합니다..
답변을 작성하려면 로그인이 필요합니다.