개발 꿀팁/PHP

PHP+MySQL 뉴스 관리 시스템 구현

Jammie 2022. 7. 14. 17:16
반응형

PHP+MySQL 구현 첨삭 수정 조사
여기 PHP랑 MySQL로 하나를 이뤘어요개별 뉴스 관리 시스템의 첨삭 및 수정 검색 기능.

I. 데이터베이스
먼저 데이터베이스 만들기

2. 프로젝트 만들기
1. 나는 이클립스 내에서 작성한 PHP Project 프로젝트이며, 프로젝트 목록은 다음과 같습니다

여기서 php 플러그인을 다운로드해야 PHP 프로젝트 프로젝트를 만들 수 있는데, 플러그인을 다운로드하면 eclipse를 실행해 Help 아래의 Instal New Software를 메인 화면에서 찾아내는 절차다.그런 다음 Work with에서 "All Available Sites"를 선택하고 여기서 로딩이 느려서 기다린 후 web, xml, java EE, and OSGI…를 선택하여 PHP Development Tools(PDT) 소프트웨어를 찾습니다.체크하고 Next를 클릭합니다.이클립스를 다시 시작하면 된다.
2, 파일 dbconfig.php 작성, 데이터베이스 연결

<?php
define("HOST", "localhost");
define("USER", "root");
define("PASS", "root");
define("DBNAME", "news");

3. 홈 화면표시 파일 생성 index.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>뉴스 백그라운드 관리 시스템</title>
</head>
<style type="text/css">
.wrapper {
	width: 1000px;
	margin: 20px auto;
}

h2 {
	text-align: center;
}

.add {
	margin-bottom: 20px;
}

.add a {
	text-decoration: none;
	color: #fff;
	background-color: red;
	padding: 6px;
	border-radius: 5px;
}

td {
	text-align: center;
}
</style>
<body>
	<div class="wrapper">
		<h2>뉴스 백그라운드 관리 시스템</h2>
		<div class="add">
			<a href="addnews.php">뉴스를 늘리다</a>
		</div>
		<table width="980px" border="1">
			<tr>
				<th>ID</th>
				<th>제목</th>
				<th>키워드</th>
				<th>작성자</th>
				<th>발표 시간</th>
				<th>내용</th>
				<th>조작하다</th>
			</tr>

			<?php
                // 1.프로필 가져오기件
                require "dbconfig.php";
                // 2. mysql 연결
                $link = @mysql_connect(HOST,USER,PASS) or die("힌트: 데이터베이스 연결에 실패했습니다!");
                // 데이터베이스 선택
                mysql_select_db(DBNAME,$link);
                // 인코딩 설정
                mysql_set_charset('utf8',$link);

                // 3. DBNAME에서 News 데이터베이스를 조회하여 데이터베이스 결과 세트를 반환하고 addtime 내림차순으로 정렬합니다 
                $sql = 'select * from tb_news order by id asc';
                // 결과집
                $result = mysql_query($sql,$link);
                // var_dump($result);die;

                // 해석 결과 세트, $row는 뉴스 모든 데이터, $newsNum은 뉴스 수
                $newsNum=mysql_num_rows($result);  

                for($i=0; $i<$newsNum; $i++){
                    $row = mysql_fetch_assoc($result);
                    echo "<tr>";
                    echo "<td>{$row['id']}</td>";
                    echo "<td>{$row['title']}</td>";
                    echo "<td>{$row['keywords']}</td>";
                    echo "<td>{$row['author']}</td>";
                    echo "<td>{$row['addtime']}</td>";
                    echo "<td>{$row['content']}</td>";
                    echo "<td>
                            <a href='javascript:del({$row['id']})'>삭제하다</a>
                            <a href='editnews.php?id={$row['id']}'>고치다</a>
                          </td>";
                    echo "</tr>";
                }
                // 5. 릴리스 결과 세트
                mysql_free_result($result);
                mysql_close($link);
            ?>
		</table>
	</div>

	<script type="text/javascript">
		function del(id) {
			if (confirm("이 뉴스를 삭제하시겠습니까?")) {
				window.location = "action-del.php?id=" + id;
			}
		}
	</script>
</body>
</html>

4. 뉴스페이지 추가 addnews.php

<!DOCTYPE html>
<html>
<head lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>뉴스 추가</title>
</head>
<style type="text/css">
form {
	margin: 20px;
}
</style>
<body>
	<form action="action-addnews.php" method="post">
		<label>제목:</label><input type="text" name="title"> <label>키워드:</label><input
			type="text" name="keywords"> <label>작성자:</label><input type="text"
			name="author"> <label>발표 시간:</label><input type="date" name="addtime">
		<label>내용:</label><input type="text" name="content"> <input
			type="submit" value="제출하다">
	</form>
</body>
</html>

action-addnews.php

<?php
// 추가 작업을 위한 페이지 처리
require "dbconfig.php";
// mysql 연결
$link = @mysql_connect(HOST, USER, PASS) or die("힌트: 데이터베이스 연결에 실패했습니다!");
// 데이터베이스 선택
mysql_select_db(DBNAME, $link);
// 인코딩 설정
mysql_set_charset('utf8', $link);

// 늘어난 뉴스를 입수하다
$title = $_POST['title'];
$keywords = $_POST['keywords'];
$author = $_POST['author'];
$addtime = $_POST['addtime'];
$content = $_POST['content'];
// 데이터 삽입
mysql_query("INSERT INTO tb_news(title,keywords,author,addtime,content) VALUES ('$title','$keywords','$author','$addtime','$content')", $link) or die('데이터 추가 중 오류:' . mysql_error());
header("Location:index.php");

 

5. 뉴스 action-del.php 삭제

<?php
// 삭제 작업을 처리하는 페이지
require "dbconfig.php";
// mysql 연결
$link = @mysql_connect(HOST, USER, PASS) or die("힌트: 데이터베이스 연결 실패!");
// 데이터베이스 선택
mysql_select_db(DBNAME, $link);
// 인코딩 설정
mysql_set_charset('utf8', $link);

$id = $_GET['id'];
//지정한 데이터 삭제
mysql_query("DELETE FROM tb_news WHERE id={$id}", $link) or die('데이터 삭제 오류:' . mysql_error());
// 삭제 후 뉴스 페이지로 이동
header("Location:index.php");

6. 뉴스 내용 수정 editnews.php

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8"/>
    <title>뉴스를 수정하다</title>
</head>
<body>
<?php
    require "dbconfig.php";

    $link = @mysql_connect(HOST,USER,PASS) or die("힌트: 데이터베이스 연결 실패!");
    mysql_select_db(DBNAME,$link);
    mysql_set_charset('utf8',$link);
    
    $id = $_GET['id'];
    $sql = mysql_query("SELECT * FROM tb_news WHERE id=$id",$link);
    $sql_arr = mysql_fetch_assoc($sql); 

?>

<form action="action-editnews.php" method="post">
    <label>뉴스ID: </label><input type="text" name="id" value="<?php echo $sql_arr['id']?>">
    <label>제목:</label><input type="text" name="title" value="<?php echo $sql_arr['title']?>">
    <label>키워드:</label><input type="text" name="keywords" value="<?php echo $sql_arr['keywords']?>">
    <label>작성자:</label><input type="text" name="author" value="<?php echo $sql_arr['author']?>">
    <label>발표 시간:</label><input type="date" name="addtime" value="<?php echo $sql_arr['addtime']?>">
    <label>내용:</label><input type="text" name="content" value="<?php echo $sql_arr['content']?>">
    <input type="submit" value="제출하다">
</form>

</body>
</html>

action-editnews.php

<?php
// 편집 작업을 처리하는 페이지
require "dbconfig.php";
// mysql 연결
$link = @mysql_connect(HOST, USER, PASS) or die("힌트: 데이터베이스 연결 실패!");
// 데이터베이스 선택
mysql_select_db(DBNAME, $link);
//인코딩 설정
mysql_set_charset('utf8', $link);

// 수정된 뉴스 가져오기
$id = $_POST['id'];
$title = $_POST['title'];
$keywords = $_POST['keywords'];
$author = $_POST['author'];
$addtime = $_POST['addtime'];
$content = $_POST['content'];
// 데이터를 갱신하다
mysql_query("UPDATE tb_news SET title='$title',keywords='$keywords',author='$author',addtime='$addtime',content='$content' WHERE id=$id", $link) or die('데이터 수정 오류:' . mysql_error());
header("Location:index.php");

마지막으로 실행하면 됩니다. 내 주소는 http://localhost/PHPProject/index.php이고, 내 항목은 Apache 서비스가 자동으로 구성된 실행 목록 아래에 있습니다. Apache 서비스를 실행한 후에 바로 접속하면 됩니다

반응형