어제 기본적인 게시판 글 등록&수정은 일단 알겠다고 실언아닌 실언했다가
오늘 하루종일 회사 DB에 등록된 상품바코드랑 상품명 리스팅이랑 페이징을 하라는 숙제를 받았다ㅠ.ㅠ
일단 관리자 서버에 있는 파일들을 참고해서 만들어보라고 하셔서....
참고해서 만들어야지~ 했는데 그게 뭐 말이 쉽지ㅠㅠ아아아
웹표준 그런거 신경 안쓰고 코딩만 보면 된다고 하셔서.. 페이지 레이아웃은 저렇게.....=.=
처음에는 db연결해서 바코드랑 상품명을 리스팅만 쫙~ 해보자 하고 코딩을 했는데,
계속 맨 첫번째 바코드랑 상품명만 검색되고ㅠㅠ for문을 돌려도 해결되지가 않아서 애를 먹었다ㅠㅠ
책을 보면서 응용해서 코딩을 하니깐 그제서야 됐는데,
이게.. mysqli_~ 이랑 mysql_~의 차이인가??
처음에는 mysql_~로 코딩해서 db접속을 했는데
책에는 mysqli_~로 코딩이 되있어서 이걸로 해보니깐 레코드 검색도 잘되고
while문을 돌렸을 때 목록이 쫙 뜨더라는....
일단 페이징을 하기전의 코딩은,
listview.php(paging 이전)
<html>
<head>
<title>listview</title>
</head>
<body style="margin: 0 auto;">
<center>
<table style="border: 1px solid #000; padding: 10px;">
<tr>
<th>barcode no.</th>
<th>product</th>
</tr>
<?
include "class/class_mysql.php";
for($i=0; $i< $num_result; $i++) {
$row=$result->fetch_assoc();
echo "<tr><td style='padding:5px;'>".stripslashes($row['bar'])."</td>";
echo "<td style='padding:5px;'>".htmlspecialchars(stripslashes($row['prod']))."</td></tr>";
}
?>
</table>
</center>
</body>
</html>
요정도???
여기에 페이징을 추가하려고 하니깐 또 그때부터 머리가 아프기 시작...ㅠㅠ
listview.php(페이징 완료)
<html>
<head>
<title>listview</title>
</head>
<style type="text/css">
a { text-decoration: none; visited: }
</style>
<body style="margin: 0 auto; padding: 50px 0 0 0;">
<center>
<table style="width: 700px; border: 1px solid #000; padding: 10px;">
<tr>
<th width=50px>no.</th>
<th width=150px>barcode no.</th>
<th width=500px>product</th>
</tr>
<?
include "class/class_mysql.php";
while($row=mysqli_fetch_array($result)) {
?>
<tr>
<td style='padding:5px;'><?= $row[idx] ?></td>
<td style='padding:5px;'><?= $row[bar] ?></td>
<td style='padding:5px;'><?= $row[prod] ?></td>
</tr>
<?
}
?>
</table>
<br>
<div>
<?
if ($total_page < $end_page) $end_page = $total_page;
if ($start_page >= $page_list_size) {
$prev_list = ($start_page - 1)*$page_size;
echo "<a href=\"$PHP_SELF?no=$prev_list\">prev</a>\n";
}
for ($i=$start_page;$i <= $end_page;$i++) {
$page=$page_size*$i; // 페이지값을 no 값으로 변환.
$page_num = $i+1; // 실제 페이지 값이 0부터 시작하므로 표시할때는 1을 더해준다. 페이지 0 -> 1
if ($no!=$page){ //현재 페이지가 아닐 경우만 링크를 표시
echo "<a href=\"$PHP_SELF?no=$page\">";
}
echo " $page_num "; //페이지를 표시
if ($no!=$page){
echo "</a>";
}
}
if($total_page > $end_page) {
$next_list = ($end_page + 1)* $page_size;
echo "<a href=$PHP_SELF?no=$next_list>next</a><p>";
}
?>
</div>
</center>
</body>
</html>
db_conn.php
<?
@ $conn=new mysqli("host", "id","password", "db_name");
if(mysqli_connect_errno()) {
echo 'error: could not connect database....';
exit;
}
$page_size=10;
$page_list_size = 10;
if (!$no || $no < 0) $no=0;
$query="select b_seq AS idx, b_barcode AS bar, b_product_kor AS prod from lioele_barcode order by idx asc limit $no,$page_size";
$result=$conn->query($query);
$result_count=$conn->query("select count(*) from lioele_barcode");
$result_row=mysqli_fetch_row($result_count);
$total_row = $result_row[0];
echo ("data result : " . $total_row . "<br><br>");
if ($total_row <= 0) $total_row = 0; // 총게시물의 값이 없거나 할경우 기본값으로 세팅
$total_page = floor(($total_row - 1) / $page_size); // 총게시물을 페이지 사이즈로 나눈뒤 내림을 한다.
$current_page = floor($no/$page_size); // 현재 페이지 계산
$start_page = (int)($current_page / $page_list_size) * $page_list_size;
$end_page = $start_page + $page_list_size - 1;
?>
'Programming > php' 카테고리의 다른 글
[php] 받아온 값 줄여서 보여주기(?) substr 한글깨짐 해결하기 (0) | 2014.02.14 |
---|---|
[php&javascript] 레이어형 팝업창 띄우기 (0) | 2014.02.11 |
[PHP] dirname()함수와 $_SERVER 관련 상수들 (0) | 2014.01.09 |
[PHP] 에러메시지-Client does not support authentication protocol requested by server; consider upgrading MySQL client (0) | 2014.01.07 |
[PHP] MySql과 연동할 때 사용되는 함수들 정리 (0) | 2014.01.07 |