12. Mysql을 이용한 메모장 (3) 제목, 리스트 -php-
-memo_list.php
-mysql_query():
-mysql_fetch_array():
-location.href
<?
include "memo.php";
?>
<br>
<!--제목 부분 출력 -->
<table style="width:1000px; height:50px; border: 5px #cccccc solid;">
<tr>
<td align="center" valign="middle">
메모보기
</td>
</tr>
</table>
<table style="width:1000px;">
<tr>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
내용
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
이름
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
이메일
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
작성일
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
수정/삭제
</td>
</tr>
<?
$db_host = "mysql.com";
$db_user = "mydb";
$db_pass = "password";
$db_name = "db이름";
//database와 연결.
$connect=mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_query("set names utf8");//한글 입력을 위한 설정.
mysql_select_db($db_name) or die(mysql_error());
//쿼리문
$query="SELECT * FROM sample_memo WHERE 1 ORDER BY m_idx DESC";//또는 ASC.
$result=mysql_query($query); //쿼리문 적용하고 $result에 대입.
$i=0;
while($data=mysql_fetch_array($result)){//자료가 더 이상 없으면 false를 리턴한다.
?>
<tr>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
<?=$data[m_name]?>
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
<?=$data[m_memo]?>
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
<?=$data[m_email]?>
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
<?=$data[regdate]?>
</td>
<td height="20" align="center" valign="middle" style="border:1px #cccccc solid;">
<input type="button" value="수정" onclick="location.href='memo_modify.php?m_idx=<?=$data[m_idx]?>'">
<input type="button" value="삭제" onclick="location.href='memo_delete.php?m_idx=<?=$data[m_idx]?>'">
</td>
</tr>
<? $i++;//데이터 갯수 체크를 위해 i를 1 증가 시킨다.
}//while문 닫음. 더이상 인출할 자료가 없으면 false가 되어 while문이 끝난다.
if($i==0){ // 자료가 하나도 없으면
?>
<tr>
<td height="50" align="center" valign="middle" colspan="5" style="border: 1px #cccccc solid;"> 자료가 하나도 없습니다.
</td>
</tr>
<?
} // if문 닫기
mysql_close($connect);
?>
</table>
mysql_query():
$result=mysql_query($query); //쿼리문 적용하고 $result에 대입하면 무엇이 입력될까?
<pre>
<?
print_r($result);
?>
</pre>
결과
Resource id #10
이게 뭐냐?
mysql_query(): SELECT, SHOW, DESCRIBE, EXPLAIN, 결과 셋을 반환하는 기타 구문에서 성공시 resource(자원)을, 오류시 FALSE를 반환.
INSERT, UPDATE, DELETE, DROP 등에서 성공하면 TRUE를, 실패하면 FALSE를 반환.
array mysql_fetch_array ( resource $result [, int $result_type ] )
fetch는 가지고 온다는 뜻. 즉 데이터를 배열로 가져오는 역할을 한다. 화일에서 fgets와 비슷하다네.
$data=mysql_fetch_array($result);
이렇게 하면 자료다 $data변수에 배열로 하나씩 저장 되는데 자료가 모두 출력 될 때까지 반복해서 이 문장을 표기할 수는 없으니까 while문을 사용하는 것이 일반적이다.
$result_type에 올 수 있는 상수는 MYSQL_ASSOC(연관형), MYSQL_NUM(숫자형), MYSQL_BOTH(둘다). 기본값은 MYSQL_BOTH 이다.
<pre>
<?
$data=mysql_fetch_array($result, MYSQL_ASSOC);
print_r($data);
$data=mysql_fetch_array($result, MYSQL_NUM);
print_r($data);
$data=mysql_fetch_array($result, MYSQL_BOTH);
print_r($data);
?>
</pre>
결과
Array
(
[m_idx] => 22
[m_name] => w
[m_email] => w
[m_pass] => w
[m_memo] => w
[m_ip] => **.***.**.***
[regdate] => 2017-03-16 19:15:30
)
Array
(
[0] => 21
[1] => 가가가ㅌㅌㅌ
[2] => ddd
[3] => s
[4] => d
[5] => **.***.**.***
[6] => 2017-03-16 17:25:39
)
Array
(
[0] => 20
[m_idx] => 20
[1] => 가가가ㅌㅌㅌ
[m_name] => 가가가ㅌㅌㅌ
[2] => ddd
[m_email] => ddd
[3] => s
[m_pass] => s
[4] => d
[m_memo] => d
[5] => **.***.**.***
[m_ip] => **.***.**.***
[6] => 2017-03-16 17:21:33
[regdate] => 2017-03-16 17:21:33
$data에 배열을 대입 할 때마다 레코드도 하나씩 증가된다. 즉 계속해서 그 다음 것을 입력 한다는 말임. 숫자형과 연관형을 동시에 출력한다.
mysql_fetch_assoc() : 기본값이 MYSQL_ASSOC(연관형)이다.
mysql_fetch_row() : 기본값이 MYSQL_NUM(숫자형)이다.
onclick="location.href='화일명'?m_idx=<?=$data[m_idx]?>'"
지정한 화일로 이동한다. 위의 예는 이동하면서 변수 전달도 같이 한다.
이와 같이 <form>을 submit시키지 않고 다른 일을 하도록 하는 예.
<input type="button" valve="button" onclick="alert("버튼 클릭")>
또는 imageㅇ위에 onclick 이벤트를 지정해 실행 될 자바 스크립트 함수를 따로 만들어 줄 수도 있다.
<image src="img.jpg" onclick="javascript: submit_function();">
'COMPUTER > php' 카테고리의 다른 글
14. Mysql을 이용한 메모장 (5) 수정 저장 -php- (0) | 2017.03.22 |
---|---|
13. Mysql을 이용한 메모장 (4) 수정 -php- (0) | 2017.03.21 |
11. Mysql을 이용한 메모장 (2) 테이블 생성, 자료 입력-php- (0) | 2017.03.16 |
고찰2. 중괄호{ }를 이용한 변수해석 -php (0) | 2017.03.16 |
고찰1. 문자열 및 echo 출력 -php- (0) | 2017.03.16 |