반응형
최근 php 개학, 오후에는 할 일 없이 빈둥빈둥 놀고 있습니다. 작은 프로젝트 연습, 즉 php로 웹 페이지를 쓰고, 데이터베이스 안의 것들을 첨삭하고 수정하고, 아래에 공유합니다. 본인의 업무 능력이 아직 얕기 때문에, 여러분의 조언이 환영입니다!
단순 효과:
1. 웹 프레젠테이션 데이터베이스 데이터 열기:
2.기능을 삭제하고 정보기능을 추가합니다
3.정보수정기능(데이터포함)
다음은 소스 코드입니다.
데이터베이스 파일: (수)라이브러리 이름: dataphp 테이블 이름: student)
/*
SQLyog 기업판 - MySQL GUI v8.14
MySQL - 5.5.5-10.3.7-MariaDB : Database - dataphp
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`dataphp` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `dataphp`;
/*Table structure for table `student` */
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(15) DEFAULT NULL,
`sex` char(4) DEFAULT NULL,
`address` varchar(20) DEFAULT NULL,
`hobby` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;
/*Data for the table `student` */
insert into `student`(`id`,`name`,`sex`,`address`,`hobby`) values (1,'장비','남자','허난 성','수영'),(6,'대교','여자','신장 성','수영'),(10,'v','남자','산시 성','수영'),(16,'조조','여자','브라질','수영'),(17,'장삼','여자','산시 성','농구');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
홈 화면: service.php
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "dataphp";
// 연결 만들기
$conn = mysqli_connect($servername, $username, $password,
$dbname);
// 연결 감지
if (!$conn) {
die("Connectionfailed: " . mysqli_connect_error());
}
//비즈니스 추가(studeng_form.php 페이지에서 Post 제출 파라미터 수신)
if(isset($_POST["name"])&&isset($_POST["sex"])&&isset($_POST["address"])&&isset($_POST["hobby"])){
$name=$_POST["name"];
$sex=$_POST["sex"];
$address=$_POST["address"];
$hobby=$_POST["hobby"];
$hobbies=implode(",",$hobby);
$sql = "INSERT into student (name,sex,address,hobby)
VALUES ('$name','$sex','$address','$hobbies')";
if (mysqli_query($conn, $sql)) {
echo "<script>alert('新纪录插入成功')</script>";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
//업무수정(updatestudent.php페이지에서 Post제출 받은 파라미터)
if(isset($_POST["name2"])&&isset($_POST["sex2"])&&isset($_POST["address2"])&&isset($_POST["hobby2"])&&isset($_POST["id"])){
$id=$_POST["id"];
$name2=$_POST["name2"];
$sex2=$_POST["sex2"];
$address2=$_POST["address2"];
$hobby2=$_POST["hobby2"];
$hobbies2=implode(",",$hobby2);
$sqlupdate = "UPDATE student SET NAME='$name2',sex='$sex2',address='$address2',hobby='$hobbies2' WHERE id=$id";
if (mysqli_query($conn, $sqlupdate)) {
echo "<script>alert('수정이 성공하다')</script>";
header("Location: service.php"); //현재 페이지 새로 고침
mysqli_close($conn);
} else {
echo "Error: " . $sqlupdate . "<br>" . mysqli_error($conn);
}
}
//검색, 모든 결과 반환
$sqlselect="select * from student";
$result=mysqli_query($conn, $sqlselect);
if($result->num_rows>0){
echo "<h1>학생 정보 표시</h1>";
echo "<div><a href='student_form.php'>학생 추가</a></div><br>";
echo "<table><tr><th>이름</th><th>성별</th><th>주소</th><th>취미</th><th>조작하다</th></tr>";
while($row=$result->fetch_assoc()){
echo '<tr><td>'.$row["name"].'</td>
<td>'.$row["sex"].'</td>
<td>'.$row["address"].'</td>
<td>'.$row["hobby"].'</td>
<td>
<a href="service.php?id='.$row["id"].'">삭제하다</a>'.' '.
'<a href="updatestudent.php?id='.$row["id"].'">고치다</a></td></tr>';
}
echo "</table>";
}else{
echo "결과 0";
}
//업무삭제, 본페이지에서 전달된 아이디 파라미터를 받고, 이를 이용하여 해당 레코드를 삭제합니다
if(isset($_GET["id"])){
$id=$_GET["id"];
$sqldelete='delete from student where id='.$id;
if (mysqli_query($conn, $sqldelete)) {
echo "<script>alert('성공적으로 삭제됨')</script>";
mysqli_close($conn);
header("Location: service.php"); //현재 페이지 새로 고침
} else {
echo "Error: " . $sqldelete . "<br>" . mysqli_error($conn);
}
}
echo '<style type="text/css">
body{text-align: center;}
table{
width:600px;height:300px;
border:1px solid black;/*테두리 굵기, 실선, 색상 설정*/
text-align:center;/*텍스트 중앙*/
background-color:#70DB93;
border-collapse: collapse;/*테두리가 겹칩니다. 그렇지 않으면 이중 실선이 보일 것입니다*/
margin: auto;
}
th{
border:1px solid black;
color:black;
font-weight:bold;/*타이틀이니까,굵게 표시하다*/
}
td{
border:1px solid black;
color:#8E2323;
}
a{
font-family: Arial;
margin: 3px;
}
a:LINK,a:VISITED {
color:#A62020;
padding:4px 10px 4px 10px;
background-color:#DDD;
text-decoration: none;
border-top: 1px solid #EEEEEE;
border-left: 1px solid #EEEEEE;
border-bottom: 1px solid #717171;
border-right: 1px solid #717171;
}
a:HOVER {
color: #821818;
padding: 5px 8px 3px 12px;
background-color: #CCC;
border-top: 1px solid #717171;
border-left: 1px solid #717171;
border-bottom: 1px solid #EEEEEE;
border-right: 1px solid #EEEEEE;
}
h1{
background-color:#678;
color:white;
text-align:center;
}
div{
text-align:center
}
</style>';
mysqli_close($conn);
?>
페이지 추가 (홈 페이지에서 이동) student_form.php
<html>
<head>
<meta charset="utf-8">
<title>양식 제출 데이터베이스</title>
</head>
<body>
<h1>학생 정보 추가</h1>
<div>
<form method="post" action="service.php">
이름:<input type="text" id="input1" name="name"/><br/>
성별:
남자<input type="radio" name="sex" value="남자"/>
여자<input type="radio" name="sex" value="여자"/>
<br/>
주소:<input type="text" id="input1" name="address"/><br/>
취미:
수영<input type="checkbox" name="hobby[]" value="수영"/>
농구<input type="checkbox" name="hobby[]" value="농구"/>
배구<input type="checkbox" name="hobby[]" value="배구"/>
<br>
<input type="submit" value="제출하다"/>
</form>
</div>
<style type="text/css">
h1{
background-color:#678;
color:white;
text-align:center;
}
body {
height: 100%;
width: 100%;
border: none;
overflow-x: hidden;
}
div{
width:100%;
text-align:center;
}
</style>
</body>
</html>
페이지 수정 (홈 페이지에서 이동) updatestudent.php
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "dataphp";
// 연결 만들기
$conn = mysqli_connect($servername, $username, $password,
$dbname);
// 연결 감지
if (!$conn) {
die("Connectionfailed: " . mysqli_connect_error());
}
//service수정탭클릭후전송되는파라미터아이디로조회하여확인한값(html에해당되는원소에넣기)
if(isset($_GET["id"])){
$id=$_GET["id"];
$sqlSelectId="select * from student where id=".$id;
$result=mysqli_query($conn, $sqlSelectId);
$row=$result->fetch_assoc();
$name=$row["name"];
$sex=$row["sex"];
$address=$row["address"];
$hobby=$row["hobby"];
$hobbies=explode(",", $hobby);//문자열 누르기“,”,배열로 나누다
}
?>
<html>
<head>
<meta charset="utf-8">
<title>양식 수정 데이터베이스</title>
</head>
<body>
<h1>정보 수정</h1>
<div>
<form method="post" action="service.php">
이름:<input type="text" name="name2" value="<?php echo $name?>"/><br/>
성별:
남자<input type="radio" id="male" name="sex2" value="남자"/>
여자<input type="radio" id="female" name="sex2" value="여자"/>
<br/>
주소:<input type="text" name="address2" value="<?php echo $address?>" /><br/>
취미:
수영<input type="checkbox" id="h1" name="hobby2[]" value="수영"/>
농구<input type="checkbox" id="h2" name="hobby2[]" value="농구"/>
배구<input type="checkbox" id="h3" name="hobby2[]" value="배구"/>
<input type="hidden" name="id" value="<?php echo $id ?>"/>
<br>
<input type="submit" value="제출하다"/>
</form>
</div>
<style type="text/css">
h1{
background-color:#678;
color:white;
text-align:center;
}
body {
height: 100%;
width: 100%;
border: none;
overflow-x: hidden;
}
div{
width:100%;
text-align:center;
}
</style>
<?php
if($sex=='남자'){
echo "
<script>
document.getElementById('male').checked=true;
</script>";
}else{
echo "
<script>
document.getElementById('female').checked=true;
</script>";
}
for($i=0;$i<count($hobbies);$i++){
if($hobbies[$i]=='수영'){
echo "
<script>
document.getElementById('h1').checked=true;
</script>";
}else if($hobbies[$i]=='농구'){
echo "
<script>
document.getElementById('h2').checked=true;
</script>";
}else if($hobbies[$i]=='배구'){
echo "
<script>
document.getElementById('h3').checked=true;
</script>";
}
}
?>
</body>
</html>
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
nginx 설정 php 프로젝트 프로필! (0) | 2022.07.19 |
---|---|
intellijidea12 php 개발 환경 구축 (0) | 2022.07.19 |
php+mysql 심플 스몰 아이템 (0) | 2022.07.19 |
파이썬 하트 고백 코드 (0) | 2022.07.18 |
파이썬의 일침—밸런타인데이 고백 (0) | 2022.07.18 |