일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- cisco packet
- html
- 원형그래프
- 라우터
- NCS
- 이것이 자바다
- 정보처리기사
- 참조타입
- Oracle
- Java
- w3school
- sql
- rinux
- 네트워크
- ospf
- 정처기필기
- jsp연결
- javaee
- autoset
- 오라클
- Cisco
- 리눅스
- 네트워크관리사
- 데이터베이스
- VLAN
- ciscopacket
- 버추얼머신
- 자바
- php
- jsp
- Today
- Total
기록해! 정리해!
HTML --학생 성적처리 ver 11 (폼태그, 자바스크립트,오토셋) 본문
º 순서
html
-> head / body
-> body ( header / nav / section / footer )
-> head (style)
-> style ( header / nav / section / footer )
-> div는 영역으로 묶어주고 싶은 곳 묶어주면 됨 body 부분을 묶어줬음
헷갈리지않게 div 이름도 id 로 잡아서 <div id="body"> css에서는 #body로 추가
-> section 을 div부분으로 나눠서 편집했다
<html>
<head>
<style>
header{
background-color:blue; /*바탕 색깔*/
height:60px; /*영역의 높이*/
line-height:60px; /*한글자의 높이*/
color:#ffffff; /*글자색깔*/
font-size:28px; /*글자 크기*/
text-align:center; /*가운데 정렬*/
}
nav{
background-color:#6699ff;
height:25px;
line-height:25px;
font-size:12px;
}
section{
background-color:#cccccc;
min-height:550px;
}
footer{
background-color:#3333ff;
height:30px;
line-height:30px;
text-align:center;
font-size:14px;
}
#body{
width:90%;
margin:auto;
}
</style>
</head>
<body>
<div id="body">
<header>
학생 성적처리 프로그램 Ver.1.11
</header>
<nav>
    학생등록  학생목록/수정  홈으로
</nav>
<section>
<br><br>
<div align=center>
<font size=4> <b> 고등학교 성적처리 프로그램 </b> </font>
</div>
<div>
<br>
  1. 학생 성적 정보 테이블을 생성한다. <br>
  2. 학생 성적 테이블에 샘플데이터를 SQL 문을 이용하여 추가한다. <br>
  3. 주어진 화면 디자인을 이용하여 화면을 디자인한다. <br>
  4. 업무 여건에 따라 프로그램을 작성한다. <br>
</div>
</section>
<footer>
HRDKOREA Copyrightⓒ2022 ALL rights resources Development Service of Korea
</footer>
</div>
</body>
</html>
º include로 분리하기
html~nav 까지 top.php -- <? include "top.php" ?>
footer~html 까지 bottom.php -- <? include "bottom.php" ?>
º top.php의 nav에 링크걸기
<nav>
   
<a href=form.php>학생등록</a> 
<a href=list.php>학생목록/수정</a> 
<a href=index.php>홈으로</a>
</nav>
º form.php, list.php
form.php, list.php 새 파일 만들어주고
index.php 내용 복사해서 붙히고 원하는 것만 수정한다.
form.php
<div align=center>
<font size=4> <b> 성적 입력 하기 </b> </font>
</div>
list.php
<div align=center>
<font size=4> <b> 성적 목록 보기 </b> </font>
</div>
º form.php 에 폼태그 추가하기
<form>
<table border="1" align=center>
<tr><td>학번</td><td><input type=text name=sno></td></tr>
<tr><td>성명</td><td><input type=text name=sname></td></tr>
<tr><td>국어</td><td><input type=text name=kor></td></tr>
<tr><td>영어</td><td><input type=text name=eng></td></tr>
<tr><td>수학</td><td><input type=text name=math></td></tr>
<tr><td>역사</td><td><input type=text name=hist></td></tr>
<tr><td colspan="2" align="center"><input type=submit value="성적저장"></td></tr>
</table>
</form>
º form.php 에 자바스크립트 추가하기
<script>
function ck1(){
alert("확인");
}
function ck2(){
alert("Button 확인");
}
</script>
.
.
.
<form name=f1 onSubmit="return ck1()">
.
.
<tr><td colspan="2" align="center">
<input type=submit value="성적저장"> --submit은 1개밖에 만들 수 없다. onSubmit
<input type=button value="버튼저장"> --여러개 가능
</td></tr>
º 버튼에 자바스크립트 호출하기
<input type=button value="버튼저장" onClick="ck2();">
--만들어보고 버튼 지우기
º 자바스크립트 추가하기
<script>
function ck1(){
if(f1.sno.value==""){
alert("학번을 입력해주세요");
f1.sno.focus();
return false;
}else if(f1.sname.value.length <= 2){
alert("이름을 3자 이상 입력해주세요");
f1.sname.value==""
f1.sname.focus();
return false;
}else{
alert("성적 입력이 완료되었습니다");
}
}
</script>
º Autoset 연결하기
myadmin 에서 korea 데이터베이스 생성하고
Create table examtbl (
sno varchar(10) not null primary key ,
sname varchar(20),
kor int,
eng int,
math int,
hist int
);
insert into examtbl values('10101','김학생', 75, 85, 90, 60);
insert into examtbl values('10102','이학생', 70, 75, 70, 60);
insert into examtbl values('10103','박학생', 70, 85, 80, 75);
insert into examtbl values('10201','조학생', 90, 85, 100, 50);
insert into examtbl values('10202','황학생', 65, 65, 60, 70);
insert into examtbl values('10203','임학생', 45, 55, 50, 55);
insert into examtbl values('10304','천학생', 70, 75, 85, 80);
insert into examtbl values('10305','남학생', 100, 85, 90, 90);
insert into examtbl values('10306','여학생', 80, 95, 90, 85);
insert into examtbl values('10307','노학생', 35, 55, 70, 55);
select * from examtbl;
쿼리에 입력하기
º form_ok.php 만들기
--Autoset 데이터베이스 연결하기
<?
$servername = "localhost";
$username = "root";
$password = "autoset";
$dbname = "korea";
$conn = new mysqli($servername, $username, $password, $dbname);
echo "접속완료";
?>
* 위에처럼 변수안쓰고 한문장으로 나타낼 수도 있음
$conn = new mysqli("localhost","root","autoset","korea");
form.php에 <form name=f1 onSubmit="return ck1()"
method=get --이건 디폴트라 안써도 됨 (method: 값을 넘기는 방식, post를 쓸 수도 있음)
action="form_ok.php">
해서 연결해주면 접속완료 뜸
-- form_ok.php에 쿼리문 연결하기
<?
$sno = $_GET['sno']; --form에서 GET을 썼으니 GET으로만 받음 (POST 하면 못받아옴)
$sname = $_GET['sname'];
$kor = $_REQUEST['kor']; --GET, POST 둘 다 받을 수 있음
$eng = $_GET['eng'];
$math = $_GET['math'];
$hist = $_GET['hist']; --form에 name 이름이랑 같아야함 (대소문자 구분)
$SQL = "insert into examtbl
values ('$sno','$sname','$kor','$eng','$math','$hist')";
echo $SQL; --화면출력 테스트용
$conn -> query($SQL);
?>
º list.php
-- 셀 색깔 나타내기
<? include "top.php" ?>
<style>
#tr1{
background-color:#aaaaaa;
}
#tr2{
background-color:#ffffff;
}
</style>
<section>
<br><br>
<div align=center>
<font size=4> <b> 성적 목록 보기 </b> </font>
</div>
<div align=center>
<br>
<table border=1>
<tr>
<th>학번</th> <th>이름</th> <th>국어</th>
<th>영어</th> <th>수학</th> <th>역사</th>
</tr>
<? for ($i=1; $i < 7 ; $i++) { ?> --for 조건문으로 자동으로 셀 갯수늘리기
<? if ( $i % 2 == 0) { --짝수 셀
$bg = 'tr1';
} else { --홀수 셀
$bg = 'tr2';
}
?>
<tr id=<?=$bg?> >
<td> <?=$i?></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<?
$s = $s + $i;
} ?>
</table>
누적합 : <?=$s ?>
</div>
<br>
</section>
<? include "bottom.php" ?>
º list.php 에 SQL연결하기
form_ok.php위에 있는 DBconn 붙혀주고
<?
$SQL = "select * from examtbl order by sno desc";
$result = $conn -> query($SQL);
?>
º 합계, 평균 나타내기
<tr>
<th>학번</th> <th>이름</th> <th>국어</th>
<th>영어</th> <th>수학</th> <th>역사</th>
<th>합계</th> <th>평균</th>
</tr>
<?
$sum=0;
$avg=0;
while($row = $result -> fetch_assoc()) {
$sum= $row['kor']+$row['eng']+$row['math']+$row['hist'];
$avg= round($sum /4,1);
?>
<tr>
<td> <?=$row['sno']?></td>
<td> <?=$row['sname']?></td>
<td> <?=$row['kor']?></td>
<td> <?=$row['eng']?></td>
<td> <?=$row['math']?></td>
<td> <?=$row['hist']?></td>
<td> <?=$sum?></td>
<td> <?=$avg?></td>
</tr>
º 짝수, 홀수 셀 색깔 나누기
$sum=0; $avg=0; $i=0;
while($row = $result -> fetch_assoc()) {
$i = $i + 1;
if($i %2 == 1 ){
$bg ='tr1';
} else {
$bg ='tr2';
}
$sum= $row['kor']+$row['eng']+$row['math']+$row['hist'];
$avg= round($sum /4,1);
?>
<tr id=<?=$bg?>>
º 순번, 학번을 (학년, 반, 번호)로 나타내기
<th>순번</th> <th>학년</th> <th>반</th> <th>번호</th>
<td> A<?=$i?></td>
<td> <?=substr($row['sno'],0,1)?></td>
<td> <?=substr($row['sno'],1,2)?></td>
<td> <?=substr($row['sno'],3,2)?></td>
º 평점 나타내기
if ($avg>=90) {
$grade = "A";
} else if($avg>=80){
$grade = "B";
} else if($avg>=70){
$grade = "C";
} else {
$grade = "F";
}
.
.
.
<td> <?=$grade?></td>
º 총점 나타내기
<?
$sum = 0; $avg = 0.0 ; $i =1 ;
$skor=0; $seng=0 ; $smath=0; $shist=0;
$ssum=0 ; $savg=0;
while( $row = $result -> fetch_assoc()) {
if ($i %2 == 1) {
$bg = 'tr1' ;
} else{
$bg = 'tr2' ;
}
$sum = $row['kor'] + $row['eng'] + $row['math']+ $row['hist'];
$avg = round( $sum / 4 , 1) ;
$skor = $skor + $row['kor'];
$seng = $seng + $row['eng'];
$smath = $smath+ $row['math'];
$shist = $shist + $row['hist'];
$ssum = $ssum + $sum;
$savg = $savg + $avg ;
if ($avg >= 90){
$G ='A' ;
} else if ($avg >= 80) {
$G ='B' ;
} else if ($avg >= 70){
$G ='C' ;
} else {
$G ='F' ;
}
?>
<tr id="<?=$bg?>" >
<td> A<?=$i?> </td>
<td> <?=substr($row['sno'],0,1)?> </td>
<td> <?=substr($row['sno'],1,2)?> </td>
<td> <?=substr($row['sno'],3,2)?> </td>
<td> <?=$row['sname']?> </td>
<td><?=$row['kor']?> </td> <td><?=$row['eng']?> </td><td> <?=$row['math']?></td>
<td><?=$row['hist']?> </td>
<td><?=$sum?> </td>
<td><?=$avg?> </td>
<td><?=$G?> </td>
</tr>
<?
$i = $i + 1 ;
}
?>
<tr >
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> 총점 </td>
<td><?=$skor?> </td> <td><?=$seng?> </td>
<td><?=$smath?></td> <td><?=$shist?> </td>
<td><?=$ssum?> </td> <td><?=$savg?> </td>
<td> </td>
</tr>
</table>
º 총평균 나타내기
$askor=0; $aseng=0 ; $asmath=0; $ashist=0;
$assum=0 ; $asavg=0;
$askor = round($skor / $i ,2);
$aseng = round($seng / $i ,2);
$asmath = round($smath / $i ,2);
$ashist = round($shist / $i ,2);
$assum = round($ssum / $i ,2);
$asavg = round($savg / $i ,2);
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> 총 평균 </td>
<td><?=$askor?> </td> <td><?=$aseng?> </td>
<td><?=$asmath?></td> <td><?=$ashist?> </td>
<td><?=$assum?> </td> <td><?=$asavg?> </td>
<td> </td>
</tr>
º 이름에 링크걸기
edit.php만들고 form.php 복사
<td>
<a href="edit.php?sno=$row['sno']?>"> -- 이동할 위치?(구분자)sno에 값을받아 넘기는 것
<?=$row['sname']?> </a>
</td>
눌렀을 때 주소창에 sno=90001이 떠야함
º 학번 값도 넘어가게 만들자
edit.php에서
<?php
$sno = $_REQUEST['sno'];
?>
.
.
<tr><td>학번</td><td><input type=text name=sno value="<?=$sno?>"></td></tr>
º 전부 다 넘어가게 만들자
위에처럼 링크를 하나하나 다 걸수도 있고 SQL을 이용할 수도 있다.
SQL 사용해서 만들어보면
edit.php에 DB.conn 을 붙여넣고
<?
$servername = "localhost" ;
$username = "root";
$password ="autoset";
$dbname="korea";
$conn = new mysqli($servername, $username, $password, $dbname );
?>
<?
$sno = $_REQUEST['sno'];
$SQL = "select * from examtbl where sno= $sno" ;
$result = $conn -> query($SQL);
$row = $result -> fetch_assoc();
$sno = $row['sno'];
$sname = $row['sname'];
$kor = $row['kor'];
$eng = $row['eng'];
$math = $row['math'];
$hist = $row['hist'];
?>
.
.
.
<tr><td>학번</td><td><input type=text name=sno value="<?=$sno?>"></td></tr>
<tr><td>성명</td><td><input type=text name=sname value="<?=$sname?>"></td></tr>
<tr><td>국어</td><td><input type=text name=kor value="<?=$kor?>"></td></tr>
<tr><td>영어</td><td><input type=text name=eng value="<?=$eng?>"></td></tr>
<tr><td>수학</td><td><input type=text name=math value="<?=$math?>"></td></tr>
<tr><td>역사</td><td><input type=text name=hist value="<?=$hist?>"></td></tr>
그리고
action="update_ok.php" 로 바꿔준다
<font size=4> <b> 성적 수정 하기 </b> </font>
<input type=submit value="성적 수정">
º update_ok.php
<?
$servername = "localhost";
$username = "root";
$password = "autoset";
$dbname = "korea";
$conn = new mysqli($servername, $username, $password, $dbname);
?>
<?
$sno = $_GET['sno'];
$sname = $_GET['sname'];
$kor = $_GET['kor'];
$eng = $_GET['eng'];
$math = $_GET['math'];
$hist = $_GET['hist'];
$SQL = "update examtbl set sname='$sname', kor='$kor', eng='$eng', math='$math',hist='$hist'";
$SQL = $SQL . "where sno= '$sno'";
echo $SQL;
$conn -> query($SQL);
?>
<script>
location.href="list.php";
</script>
'Visual studio (PHP)' 카테고리의 다른 글
HTML -- 학생 성적처리 ver 11 코드정리 (0) | 2022.06.20 |
---|---|
HTML --폼 태그 (0) | 2022.06.17 |
JAVA Script (0) | 2022.06.16 |
HTML 메모장 (0) | 2022.06.16 |
html 태그 (0) | 2022.06.15 |