상세 컨텐츠

본문 제목

PHP 주소록 만들기

BackEnd/PHP

by H_Develop 2022. 6. 7. 08:29

본문

 

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

- 주소록 현황 및 추가 삭제 페이지

 

'BackEnd > 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

관련글 더보기