data.json 파일
[
{
"target": "first",
"name": "1번 이름",
"homepage": [
{
"link": "https://www.naver.com",
"description": "1번 설명",
"date": "1번 날짜"
}
]
},
{
"target": "second",
"name": "2번 이름",
"homepage": [
{
"link": "https://www.google.com",
"description": "2번 설명",
"date": "2번 날짜"
}
]
},
{
"target": "third",
"name": "3번 이름",
"homepage": [
{
"link": "https://www.naver.com",
"description": "3번 설명",
"date": "3번 날짜"
}
]
},
{
"target": "fourth",
"name": "4번 이름",
"homepage": [
{
"link": "https://www.daum.net",
"description": "4번 설명",
"date": "4번 날짜"
}
]
},
{
"target": "fiveth",
"name": "5번 이름",
"homepage": [
{
"link": "https://www.google.com",
"description": "5번 설명",
"date": "5번 날짜"
}
]
},
{
"target": "sixth",
"name": "6번 이름",
"homepage": [
{
"link": "https://www.kakao.com",
"description": "6번 설명",
"date": "6번 날짜"
}
]
},
{
"target": "seventh",
"name": "7번 이름",
"homepage": [
{
"link": "https://www.daum.net",
"description": "7번 설명",
"date": "7번 날짜"
}
]
},
{
"target": "eighth",
"name": "8번 이름",
"homepage": [
{
"link": "https://www.naver.com",
"description": "8번 설명",
"date": "8번 날짜"
}
]
},
{
"target": "nineth",
"name": "9번 이름",
"homepage": [
{
"link": "https://www.daum.net",
"description": "9번 설명",
"date": "9번 날짜"
}
]
},
{
"target": "tenth",
"name": "10번 이름",
"homepage": [
{
"link": "https://www.nate.com",
"description": "10번 설명",
"date": "10번 날짜"
}
]
},
{
"target": "eleventh",
"name": "11번 이름",
"homepage": [
{
"link": "https://www.naver.com",
"description": "11번 설명",
"date": "11번 날짜"
}
]
},
{
"target": "twelveth",
"name": "12번 이름",
"homepage": [
{
"link": "https://www.nate.com",
"description": "12번 설명",
"date": "12번 날짜"
}
]
},
{
"target": "thirteenth",
"name": "13번 이름",
"homepage": [
{
"link": "https://www.google.com",
"description": "13번 설명",
"date": "13번 날짜"
}
]
}
]
index.php 파일
<?
$jsonUrl = 'data.json'; //data.json 파일 위치
$getData = file_get_contents($jsonUrl); //json 내용 불러옴
$datas = json_decode($getData, true); //php에서 json 읽을 수 있도록
?>
<style>
table {
border: 1px solid black;
}
td {
border: 1px solid black;
}
.pagination {
padding-top: 20px;
}
.pagination form {
display: flex;
}
.pagination input {
padding: 0 10px;
font-weight: bold;
display: block;
}
</style>
<table>
<thead>
<tr>
<th>고객사</th>
<th>주소</th>
<th>날짜</th>
</tr>
</thead>
<tbody>
<?
if(array_key_exists('page', $_POST)){
printpage($_POST['page']);
} else {
printpage(1);
}
function printpage(int $page){
global $datas; //전역변수로 사용
$page = ($page - 1) * 5; //페이저 밸류 받아서 계산 됨
$count = count($datas); //데이터 갯수
for ($i = $page; $i < $page + 5; $i++) {
if($i > $count - 1){ //데이터 갯수 넘어가면 tr출력 안되도록
} else { ?>
<tr>
<td><?=$datas[$i]['name']?></td>
<td><a href="detail.php?target=<?=$datas[$i]['target']?>">자세히 보기</a></td>
<td><?=$datas[$i]['homepage'][0]['date']?></td>
</tr>
<? } ?>
<? }
}
?>
</tbody>
</table>
<div class="pagination">
<?
$count = count($datas) - 1;
$pageNum = ($count - $count % 5) / 5 + 1 ;
?>
<form method="post">
<?
for($i = 1; $i <= $pageNum; $i = $i+1) {
echo "<input type='submit' name='page' value='$i'/>";
}
?>
</form>
</div><!-- .pagination -->
detail.php 파일
<?
$jsonUrl = 'data.json';
$getData = file_get_contents($jsonUrl);
$datas = json_decode($getData, true);
?>
<style>
table {
border: 1px solid black;
}
td {
border: 1px solid black;
}
</style>
<h1>Target: <?php echo $_GET['target']?></h1>
<table>
<thead>
<tr>
<th>고객사</th>
<th>링크</th>
<th>설명</th>
<th>날짜</th>
</tr>
</thead>
<tbody>
<?
foreach ($datas as $data) {
if($data['target'] == $_GET['target']) { ?>
<tr>
<td><?=$data['name']?></td>
<td><a href="<?=$data['homepage'][0]['link']?>" target="_blank">이동하기</a></td>
<td><?=$data['homepage'][0]['description']?></td>
<td><?=$data['homepage'][0]['date']?></td>
</tr>
<? }
} ?>
</tbody>
</table>
<button onclick="history.back()">뒤로가기</button>
728x90