1. connect_table.php
<?php
$connect = mysql_connect("localhost","root","rootoor")
// mysql_connect 함수를 이용하여 localhost 로 연결하여 DB 접속, root ID, rootoor Password
if (!$connect) // 연결이 안됬다면,
die("DB selection error:".mysql_error());
// 메시지 띄우고 종료. mysql_error() 함수로 문제를 띄움, 큰따음표와 함수를 . 온점은 문장 연결
mysql_select_db("mine",$connect); // 미리 mine DB create 해놓고, mine DB로 $connect 한다.
/* 매 파일마다 연결을 위해 윗 부분을 작성해야 하는데, 윗부분만 작성 후,
각 파일에 inclue "connect_db.php "를 써주어도 된다. */
$sql = "CREATE table contacts ("; // DB에 contacts table 생성
$sql .= "num int not null auto_increment,"; // php 에서 sql 줄을 넘길 때, .= 을 사용
$sql .= "name varchar(12) not null,";
$sql .= "addr varchar(80) not null,";
$sql .= "phone varchar(20) not null,";
$sql .= "primary key(num)";
$sql .= ")";
$result = mysql_query($sql, $connect); // sql 연결해서 true false 를 반환
if (!$result)
die("Table making failure!<br>");
else
echo("Table making success!<br>");
mysql_close($connect); // mysql 연결 종료
?>
chmod 777 connect_table.php 실행
http://localhost/connect_table.php 으로 파일 정상 작동 확인
show tables; desc contacts; 테이블 생성 확인.
2. insert_records.php
<?php
$connect = mysql_connect("localhost","root","rootoor");
if (!$connect)
die ("DB selection error:".mysql_error());
mysql_select_db("mine","$connect");
$name = array("Kim","Lee","Kang","Noh","Kweon");
$addr = array("Seoul","Pusan","Kwangju","Incheon","Chungnam");
$phone = array("111-2222","222-3333","333-4444","444-4444","555-5555","555-6666");
for ($i=0; $i < count($name); $i++) { // count() 함수 name 배열의 길이 만큼 돌린다.
$sql = "INSERT INTO contacts (name, addr, phone)";
$sql .= "VALUES ('$name[$i]','$addr[$i]','$phone[$i]')";
// 배열을 for 문으로 내용 DB 입력
$result = mysql_query($sql, $connect); // sql 연결
if (!$result)
die("$i record inserting failure<br>"); // 문제되는 배열이 어딘지 메시지를 띄움
}
echo "data record inserting success ! <br>";
mysql_close($connect);
?>
chmod 777 connect_table.php 실행
http://localhost/insert_records.php 으로 파일 정상 작동 확인
select * from mine contacts; 데이터 입력 확인
3. count_records.php
<?php
$connect = mysql_connect("locahost","root","rootoor");
if (!$connect)
die("DB selection error:".mysql_error());
mysql_select_db("mine",$connect);
$sql = "SELETE * FROM contacts";
$result = mysql_query($sql, $connect);
$num_records = mysql_num_rows($result);
// mysql_num_rows() DB에서 쿼리를 날려 record 갯수를 반환한다.
$num_fields = mysql_num_fields($result);
echo "Number of records : $num_records<br>";
// row 한 줄 데이터를 record, column 한 줄 데이터를 felid 라 한다.
echo "Number of fields : $num_fields";
mysql_close($connect);
?>
chmod 777 count_records.php 실행
localhost/count_records.php 확인
4. view_records.php
<?php
$connect = mysql_connect("localhost","root","rootoor");
if (!$connect)
die("DB selection error:".mysql_error());
mysql_select_db("mine".mysql_error());
$sql = "SELECT * FROM contacs";
$result = mysql_query($sql, $connect);
$num_fields = mysql_num_fields($result);
?>
<h2>Address Book</2>
<table width = 400>
<tr>
<td>ID</td>
<td>NAME</td>
<td>ADDRESS</td>
<td>PHONE</td>
</tr>
<?php
while ($row = mysql_fetch_row($result)) {
// mysql_fetch_row() 숫자형 인덱스 배열로 반환
echo "<tr>";
for ($i=0; $i < $num_fields; $i++)
echo "<td>$row[$i]</td>";
// 모든 records 반환, echo'id'.$row[0]; -> 0번째 id를 출력 == 1
echo "</tr>"
}
mysql_close($connect);
?>
</table>
/* mysql_fetch_assoc() 문자형 연관 배열 반환 */
chmod 777 view_records.php 실행
localhost/view_records.php 확인
5. add_person.php
<?php
$connect = mysql_connect("localhost","root","rootoor");
if (!$connect)
die("DB access Failure:".mysql_error());
mysql_select_db("mine",$connect);
$sql = "INSERT INTO contacts (num, name, addr, phone)";
$sql .= "VALUES ('$_POST[num]','$_POST[name]','$_POST[addr]','$_POST[phone]')";
mysql_query($sql, $connect);
mysql_close($connect);
header("Location:addr_book.php");
?>
chmod 777 add_person.php 실행
addr_book.php 파일이 없어 실행하면 오류가 뜨지만, addr_book.php was not found on this server를 확인한다.
6. del_person.php
<?php
$connect = mysql_connect("localhost","root","rootoor");
if(!$connect)
die("DB access Failure:".mysql_error());
mysql_select_db("mine",$connect);
$sql = "DELETE FROM contacts WHERE num=$_GET[num]";
// $_GET[] 함수로 입력된 where num 위치를 삭제
mysql_query($sql, $connect);
mysql_close($connect);
header("Loacation:addr_book.php");
?>
chmod 777 del_person.php 실행, 역시 addr_book.php 없어 오류. 내용 확인
7. addr_book.php
<?php
$connect = mysql_connect("localhost","root","rootoor");
if (!$connect)
die("DB access Failure:".mysql_error());
mysql_select_db("mine",$connect);
if($_GET[mode]=="by name")
$sql = "SELECT * FROM contacts ORDER BY binary(name)";
// ORDER BY 정렬, The BINARY function converts a value to a binary string
elseif ($_GET[mode]=="by addr")
$sql = "SELECT * FROM contacts ORDER BY binary(addr)";
else
$sql = "SELECT * FROM contacts";
$result = mysql_query($sql, $connect);
?>
<h2>Address Book</h2>
<form action="add_person.php" method="post"> // 새로운 주소 입력 창
ID : <input type=text size=7 name=id><br>
Name : <input type=text size=12 name=name><br>
Address : <input type=text size=40 name=addr><br>
Phone : <input type=text size=20 name=phone><br>
<input type=submit value="Add">
</form>
<table width=400>
<tr>
<td>COUNT</td>
<td>ID</td>
<td>NAME</td>
<td>ADDRESS</td>
<td>PHONE</td>
<td>DELETE</td>
</tr>
<?php
$count = 1;
// 각 field에 count 하나씩 세며, 한 field를 지워도 count는 유지되어 새로 추가해도 지워진 카운터 부터가 아닌 그 다음 카운트 부터 센다.
// 만약 헬스장이면 총 회원(count)이 어느정도 였는지, 현재 남은 회원(id)은 어느정도인지 나간 회원(count-id)은 어느정도인지 알 수 있다.
while ($row = mysql_fetch_array($result)) {
// 현 저장되있는 주소 상태를 띄우고, a테그로 삭제 기능을 삽입.
echo "<tr>";
echo "<td align=center>$count</td>";
echo "<td align=center>$row[num]</td>";
echo "<td align=center>$row[name]</td>";
echo "<td align=center>$row[addr]</td>";
echo "<td align=center>$row[phone]</td>";
echo "<td align=center><a href=del_person.php?num=$row[num]>X</a></td>";
echo "</tr>";
$count++ // add_person.php와 연계되어 숫자가 늘어나야 한다.
}
mysql_close($connect);
?>
connect_table.php
table 생성 및 연결
insert_records.php
- 주소를 DB에 저장
count_records.php
- 열과 행 갯수를 나타냄
view_records.php
- 저장된 주소록 현황을 보여줌
add_person.php
- addr_book.php의 추가 기능
del_person.php
- addr_book.php의 삭제 기능
addr_book.php
- 주소록 현황 및 추가 삭제 페이지
PHP Cookie & Session (0) | 2022.06.07 |
---|---|
PHP Cookie & Session (0) | 2022.06.07 |
PHP 게시판 만들기 (0) | 2022.06.07 |
PHP Login(COOKIE) (0) | 2022.06.07 |
PHP 반복문 조건문 (0) | 2022.06.07 |