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++;//데이터 갯수 체크를 위해 i1 증가 시킨다.

}//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();"> 

Posted by star story :

Snippet :: Code View :: "+location.href+'
'+b+"

");top.consoleRef.document.close()}$(".snippet-container").each(function(b){$(this).find("a.snippet-text").click(function(){var d=$(this).parents(".snippet-wrap").find(".snippet-formatted");var c=$(this).parents(".snippet-wrap").find(".snippet-textonly");d.toggle();c.toggle();if(c.is(":visible")){$(this).html("html")}else{$(this).html("text")}return false});$(this).find("a.snippet-window").click(function(){var c=$(this).parents(".snippet-wrap").find(".snippet-textonly").html();a(c);$(this).blur();return false})});$(".snippet-toggle").each(function(b){$(this).click(function(){$(this).parents(".snippet-container").find(".snippet-wrap").toggle()})})});