이미지 뷰어 페이지 > 질문&답변

본문 바로가기

질문&답변

DreamPHP.com에서 다루는 내용(PHP, 프로그램, 고전)에 대해서만 질문 남겨주세요.
기타 질문은 PHP스쿨의 아래 성격에 맞는 게시판에 올리면 됩니다.
리눅스/서버/설치/설정 ,  Mysql/Oracle/Query/DB ,  PHP/함수/API/프레임웍 ,  HTML/JS/CSS/jQuery/Ajax
모바일앱/하이브리드앱 ,  ASP/JSP/기타개발관련 ,  개발을 제외한 일반질문

이미지 뷰어 페이지

페이지 정보

작성자 0bible0 댓글 2건 조회 1,352회 작성일 11-06-07 02:04

본문

▶ PHP스쿨 > Q&A > PHP Function - http://www.phpschool.com/link/qna_function/329292
16 12 08 04
15 11 07 03
14 10 06 02
13 09 05 01 형식으로 보이게 할려 그럽니다
<head>
<meta http-equiv=content-type content=text/html; charset=euc-kr>
<title>글목록보기</title>
<STYLE TYPE=text/css>
BODY,TD,SELECT,input,DIV,form,TEXTAREA,center,option,pre,blockquote {font-family:굴림;font-size:10pt;color:#555555;}
A:link    {color:black;text-decoration:none;}
A:visited {color:black;text-decoration:none;}
A:active  {color:black;text-decoration:none;}
A:hover  {color:gray;text-decoration:none;}
</STYLE>
</head>
<?

mysql_connect("localhost", "", "") or die (mysql_error());
mysql_select_db("");
mysql_query('set names euckr');

//게시판 목록보기에 필요한 각종 변수 초기값을 설정합니다.
$tablename="board2"; //테이블 이름
if($_GET['page'] == '') $page = 1; //페이지 번호가 없으면 1
else $page=$_GET['page'];
$list_num = 16; //한 페이지에 보여줄 목록 갯수
$page_num = 5; //한 화면에 보여줄 페이지 링크(묶음) 갯수
$offset = $list_num*($page-1); //한 페이지의 시작 글 번호(listnum 수만큼 나누었을 때 시작하는 글의 번호)

//검색을 위한 SQL where 문 만들기
if ($src_value != '') {
$where = "where $src_name like '%$src_value%'";
}

//전체 글 수를 구합니다. (쿼리문을 사용하여 결과를 배열로 저장하는 일반적인 방법)
$query="select count(*) from $tablename $where"; // SQL 쿼리문을 문자열 변수에 일단 저장하고
$result=mysql_query($query) or die (mysql_error()); // 위의 쿼리문을 실제로 실행하여 결과를 result에 저장한 다음
$row=mysql_fetch_row($result); //위 결과 값을 하나하나 배열로 저장합니다.
$total_no=$row[0]; //배열의 첫번째 요소의 값, 즉 테이블의 전체 글 수를 저장합니다.

//전체 페이지 수와 현재 글 번호를 구합니다.
$total_page=ceil($total_no/$list_num); // 전체글수를 페이지당글수로 나눈 값의 올림 값을 구합니다.
$cur_num=$total_no - $list_num*($page-1); //현재 글번호

//bbs테이블에서 목록을 가져옵니다. (위의 쿼리문 사용예와 비슷합니다.)
$query="select * from $tablename $where order by num desc limit $offset, $list_num"; // SQL 쿼리문. where 문은 order by 문 앞에
$result=mysql_query($query) or die (mysql_error()); // 쿼리문을 실행 결과
//쿼리 결과를 하나씩 불러와 실제 HTML에 나타내는 것은 HTML 문 중간에 삽입합니다.
?>
<?

$host = "localhost";
$user = "";
$pass = "";
// 접속정보
$mydb = mysql_connect($host,$user,$pass);

//사용자 정보

$db = mysql_select_db('',$mydb);
mysql_query('set names euckr');
//DB 선택

$sql = "SELECT * FROM board2";
//해당 테이블 선택

$get = mysql_query($sql,$mydb);
//테이블의 내용을 가져옴

echo"<center><img src='스크린 샷.png' width='180' height='50' border='0' alt=''><br><br>
</center>";//상단 바

while($row = mysql_fetch_array($result))
{//입력된 정보를 모두 출력

echo("<center><table border=0 cellspacing=1 cellpadding=1 width=500 bgcolor='white'>
    <tr width='500' height='400' colspan='5'><center><font size='2'><img src='$row[link]' width='80'></tr>
<tr width='500' height='0' colspan='5'><center><font size='2'>$row[num]</tr>
<tr width='500' height='0' colspan='5'><center><font size='2'><a href='viewdata2.php?num=$row[num]' target='b'>$row[title]</a></tr>
<tr width='500' height='0' colspan='5'><center><font size='1'>$row[name]</tr>
<tr width='500' height='0' colspan='5'><center><font size='1'>$row[time]</tr></form></center></table>
");
}
echo "<center><form action='writedata2.php' target='b'><input type=submit value='글쓰기'></form></center>";
mysql_close($mydb);
$cur_num --;
?>
<?
//여기서부터 각종 페이지 링크
//먼저, 한 화면에 보이는 블록($page_num 기본값 이상일 때 블록으로 나뉘어짐)
$total_block=ceil($total_page/$page_num);
$block=ceil($page/$page_num); //현재 블록

$first=($block-1)*$page_num; // 페이지 블록이 시작하는 첫 페이지
$last=$block*$page_num; //페이지 블록의 끝 페이지

if($block >= $total_block) {
$last=$total_page;
}

echo "
<p align=center>";
//[처음][*개앞]
if($block > 1) {
$prev=$first-1;
echo "<a href='listdata2-2.php?page=1&src_name=$src_name&src_value=$src_value'>[처음]</a>  ";
echo "<a href='listdata2-2.php?page=$prev&src_name=$src_name&src_value=$src_value'>[$page_num 개 앞]</a>";
}

//[이전]
if($page > 1) {
$go_page=$page-1;
echo " <a href='listdata2-2.php?page=$go_page&src_name=$src_name&src_value=$src_value'>[이전]</a> ";
}

//페이지 링크
for ($page_link=$first+1;$page_link<=$last;$page_link++) {
if($page_link==$page) {
echo "<font color=green><b>$page_link</b></font>";
}
else {
echo "<a href='listdata2-2.php?page=$page_link&src_name=$src_name&src_value=$src_value'>[$page_link]</a>";
}
}

//[다음]
if($total_page > $page) {
$go_page=$page+1;
echo " <a href='listdata2-2.php?page=$go_page&src_name=$src_name&src_value=$src_value'>[다음]</a>";
}

//[*개뒤][마지막]
if($block < $total_block) {
$next=$last+1;
echo "<a href='listdata2-2.php?page=$netxt&src_name=$src_name&src_value=$src_value'>[$page_num 개 뒤]</a> ";
echo "<a href='listdata2-2.php?page=$total_page&src_name=$src_name&src_value=$src_value'>[마지막]</a></p>";
}

?>

댓글목록

BiHon님의 댓글

BiHon 작성일

질문과 답변 게시판입니다.



그냥 참고 코드 덧붙입니다.



‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥



$array = range(16,1);

$data = array();

$c = 0;

$count = 4;

foreach ( $array as $row ) // while ( $row = mysql_fetch_assoc($result) )

{

    $data[$c++%$count][] = $row;

}



$data 값은 아래와 같습니다.

Array

(

    [0] => Array

        (

            [0] => 16

            [1] => 12

            [2] => 8

            [3] => 4

        )



    [1] => Array

        (

            [0] => 15

            [1] => 11

            [2] => 7

            [3] => 3

        )



    [2] => Array

        (

            [0] => 14

            [1] => 10

            [2] => 6

            [3] => 2

        )



    [3] => Array

        (

            [0] => 13

            [1] => 9

            [2] => 5

            [3] => 1

        )



)



‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥



$array = range(16,1);

$c = 0;

$count = 4;

foreach ( $array as $row )

{

    $p = $c++%$count;

    if ( !isset($data[$p]) ) $data[$p] = '';

    $data[$p].= sprintf('%02d ',$row);

}



$data 값은 아래와 같습니다.

Array

(

    [0] => 16 12 08 04

    [1] => 15 11 07 03

    [2] => 14 10 06 02

    [3] => 13 09 05 01

)



‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥‥



방법이 더 있는데-예를 들어 계산을 통한 이동 등- 생략합니다.



배열의 크기만큼 테이블 <td>~</td> 출력,

또는 <div style="float:left;">~</div> 출력하면 됩니다.

0bible0님의 댓글

0bible0 작성일

여러가지 시도를 해보았으나 근접은 하되 결과가 나오지를 않는군요 ㅠㅠ

답변 감사드립니다

회원로그인


Copyright © 1998~2019 DreamPHP.com All rights reserved.