일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- javaee
- 정보처리기사
- 정처기필기
- 이것이 자바다
- 네트워크관리사
- jsp연결
- ciscopacket
- VLAN
- 원형그래프
- sql
- 버추얼머신
- NCS
- autoset
- ospf
- rinux
- 네트워크
- 자바
- 데이터베이스
- 리눅스
- Oracle
- Cisco
- php
- jsp
- cisco packet
- Java
- html
- w3school
- 오라클
- 참조타입
- 라우터
- Today
- Total
기록해! 정리해!
HTML -- 성적조회 프로그램 Ver1.0 (1) 본문
06/20
º 타이틀 적기
º index.php
1. <html> , <head> ,<body>
2. <head> , <nav> , <section> , <footer>
3. CSS
4. section에 div , body에 div
5. section에 1,2,3,4 자동으로 찍어보기 <ol> <li>
<html>
<head>
<title> 정보처리기능사 연습 </title>
<style>
header{
background-color:blue;
height:80px;
line-height:80px;
color:#ffffff;
font-size:28px;
text-align:center;
}
nav{
background-color:#00aaff;
height:30px;
line-height:30px;
color:#ffffff;
font-size:14px;
}
section{
background-color:#cccccc;
min-height:650px;
}
footer{
background-color:#0033ff;
height: 40px;
line-height:40px;
text-align:center;
font-size: 17px;
color:#ffffff;
}
#section1{
text-align:center;
font-size:25px;
}
#body{
width:80%;
margin:auto;
}
</style>
</head>
<body>
<div id="body">
<header> (과정평가형 정보처리기능사)성적조회 프로그램 Ver1.0 </header>
<nav>
  성적입력
 성적조회
 홈으로
</nav>
<section>
<br>
<div id="section1">
고등학교 성적 조회 프로그램 <br>
</div>
<br>
 <b>고등학교 성적을 조회하는 프로그램을 작성한다.</b>
<ol>
<li> 학생 성적 정보 테이블을 생성한다. <br>
<li> 학생 성적 테이블에 샘플데이터를 SQL문을 이용하여 추가한다. <br>
<li> 주어진 화면 디자인을 이용하여 화면을 디자인한다. <br>
<li> 업무 여건에 따라 프로그램을 작성한다. <br>
</ol>
</section>
<footer>
HRDKOREA Copyrightⓒ2018 ALL rights reserved. Human Resources Development Services of Korea
</footer>
</div>
</body>
</html>
º include해서 top.php, bottom.php 만들어주기
html~nav 까지 top.php -- <? include "top.php" ?>
footer~html 까지 bottom.php -- <? include "bottom.php" ?>
º form.php, list.php 만들기
index.php에서 복사 붙여넣고 맞게 수정해주고
top.php에서 nav에 링크 걸어준다
<nav>
  <a href=form.php>성적입력</a>
 <a href=list.php>성적조회</a>
 <a href=index.php>홈으로</a>
</nav>
º form.php
1. 우선 <form>을 만들어주고
2. 기본적으로 action , method 를 적어준다.
(자바스크립트도 쓸꺼면 form name, onSubmit, return 값의 이름을 적어준다)
3. 넣어야할 컬럼명과 input type을 작성
4. 테이블 형성
5. div 잡고 가운데 정렬
6. css 해서 스타일 맞춰주기
7. 자바스크립트 만들기
(alert에 아무글자 넣어서 확인해보고
return false; 해서 안넘어가게하고
if 작성하고 else 쓰고
focus 넣기)
<? include "top.php"?>
<style>
table{
width:350px;
height: 300px;
}
td{
text-align:center;
}
</style>
<script>
function ck1(){
if(f1.sno.value == ""){
alert("학번을 입력해 주세요");
f1.sno.focus();
return false;
}else{
alert("학생 성적이 입력 되었습니다.");
}
}
</script>
<section>
<br><br>
<div id="section1">
학생 성적 입력 <br>
</div>
<br>
<div align=center>
<form name=f1 action=form_ok.php onSubmit="return ck1()" method=get>
<table border=1>
<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>
</div>
</section>
<? include "bottom.php"?>
º form_ok.php
1. 아무글자나 써서 넘어가는지 확인해주고
2. $ 부터 적기
3. 데이터베이스 커넥션하기
( 위에 $conn = new mysqli("localhost","root","autoset","korea"); 해서 연결하고
밑에 SQL 쿼리문 작성하고
실행시키기 $conn -> query($SQL);
4. 자바스크립트로 list.php로 넘기기 location.href="list.php" ;
5. 데이터베이스 커넥션을 DBconn.php로 만들어주기 <? include "DBconn.php" ?>
<? include "DBconn.php" ?>
<?
$sno = $_GET['sno'];
$sname = $_GET['sname'];
$kor = $_GET['kor'];
$eng = $_GET['eng'];
$math = $_GET['math'];
$hist = $_GET['hist'];
$SQL = "insert into examtbl (sno, sname, kor, eng, math, hist) " ;
$SQL = $SQL . " values ('$sno', '$sname, '$kor', '$eng', '$math', '$hist') " ;
$conn -> query($SQL);
?>
<script>
location.href="list.php" ;
</script>
º DBconn.php
<?
$conn = new mysqli("localhost","root","autoset","korea");
?>
º list.php
1. DBconn.php
2. SQL 쿼리문 작성
3. 쿼리문 실행 $result = $conn -> query($SQL);
4. 테이블 만들고 div 잡아서 가운데 정렬하기
5. 그 안에 while문 만들기
* 합계, 평균을 쿼리문 안에 넣어서 표현해보기
$SQL = "select sno, sname, kor, eng, math, hist , kor+eng+math+hist as ssum, (kor+eng+math+hist)/4 as savg " ;
<td>합계</td> <td>평균</td>
<td><?=$row['ssum']?></td><td><?=$row['savg']?></td></tr>
-- ssum, savg 같은 경우는 함수 명령어와 겹칠 수 있으므로 s를 하나 더 붙혀서 헷갈리지 않게 해줬다
6. CSS
7. search(검색창) 만들기
( select로 잡고 option 넣고 그 바깥에 창 만들고 앞에 한 거 다 form 으로 잡아줌
form 했으니까 action 해줘야함 안그러면 자기자신으로 간다 )
<form>
<select name= ch1>
<option value="sno"> 학번 </option> --컬럼명
<option value="sname"> 이름 </option>
</select>
<input type=text name=ch2>
<input type=submit value="검색하기">
</form>
8. if문 써서 쿼리 연결해주기
<?
$ch1 = "" ; $ch2 ="" ; --초기값
$ch1 = $_GET['ch1'];
$ch2 = $_GET['ch2'];
if( $ch1 == ""){ --null을 줘서 원본 성적조회 테이블
$SQL = " select sno, sname, kor, eng, math, hist , " ;
$SQL = $SQL . " kor+eng+math+hist as ssum, " ;
$SQL = $SQL . " round((kor+eng+math+hist)/4,1) as savg " ;
$SQL = $SQL . " from examtbl order by sno desc " ;
$result = $conn -> query($SQL);
}else if( $ch1 == "sno"){ --학번을 검색했을 때 나올 테이블
$SQL = " select sno, sname, kor, eng, math, hist , " ;
$SQL = $SQL . " kor+eng+math+hist as ssum, " ;
$SQL = $SQL . " round((kor+eng+math+hist)/4,1) as savg " ;
$SQL = $SQL . " from examtbl where sno like '%$ch2%' order by sno desc " ;
//echo $SQL ;
$result = $conn -> query($SQL);
}else if( $ch1 == "sname"){ --이름을 검색했을 때 나올 테이블
$SQL = " select sno, sname, kor, eng, math, hist , " ;
$SQL = $SQL . " kor+eng+math+hist as ssum, " ;
$SQL = $SQL . " round((kor+eng+math+hist)/4,1) as savg " ;
$SQL = $SQL . " from examtbl where sname like '%$ch2%' order by sno desc " ;
//echo $SQL ;
$result = $conn -> query($SQL);
}
?>
* 에러 날때
이렇게 바꾸고 아파치데몬 리스타트해줘야함
오토셋 제어 - 웹서버 재시
* 국어점수도 추가하기
<? include "top.php"?>
<? include "DBconn.php" ?>
<?
$ch1 = $_GET['ch1'];
$ch2 = $_GET['ch2'];
$SQL = " select sno, sname, kor, eng, math, hist , " ;
$SQL = $SQL . " kor+eng+math+hist as ssum, " ;
$SQL = $SQL . " round((kor+eng+math+hist)/4,1) as savg from examtbl " ;
if( $ch1 == "" ){
$SQL = $SQL . " order by sno desc " ;
}else if( $ch1 == "sno"){
$SQL = $SQL . " where sno like '%$ch2%' order by sno desc " ;
}else if( $ch1 == "sname"){
$SQL = $SQL . " where sname like '%$ch2%' order by sno desc " ;
}else if( $ch1 == "kor"){
$SQL = $SQL . " where kor like '%$ch2%' order by sno desc " ;
}
$result = $conn -> query($SQL);
?>
<style>
table{
width:500px;
}
td{
text-align:center;
height:25px;
}
</style>
<section>
<br>
<div id="section1">
성적조회목록 <br>
</div>
<br>
<div align=center>
<table border=1>
<tr><td>학번</td> <td>이름</td> <td>국어</td>
<td>영어</td> <td>수학</td> <td>역사</td>
<td>합계</td> <td>평균</td> </tr>
<? while ($row = $result -> fetch_assoc()) {?>
<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><?=$row['ssum']?></td><td><?=$row['savg']?></td></tr>
<?}?>
</table>
<form>
<select name=ch1>
<option value="sno">학번</option>
<option value="sname">이름</option>
<option value="kor">국어점수</option>
</select>
<input type=text name=ch2>
<input type=submit value="검색하기">
</form>
</div>
</section>
<? include "bottom.php"?>
* 평점 추가하기
<?
if ($row['savg']>=90){ --위에 미리 잡아놓은 값
$grade = 'A';
}else if ($row['savg']>=80){
$grade = 'B';
}else if($row['savg']>=70){
$grade = 'C';
}else{
$grade = 'F';
}
?>
.
.
.
<td><?=$grade?></td>
* 총점, 총평균 추가하기
<?
$i =0;
$s_kor=0; $s_eng=0; $s_math=0; $s_hist=0;
$s_sum=0; $s_avg=0;
.
.
.
$i = $i + 1 ;
$s_kor=$s_kor+$row['kor'];
$s_eng=$s_eng+$row['eng'];
$s_math=$s_math+$row['math'];
$s_hist=$s_hist+$row['hist'];
$s_sum=$s_sum+$row['ssum'];
$s_avg=$s_avg+$row['savg'];
?>
.
.
.
<tr>
<td> </td>
<td> 총점 </td>
<td><?=$s_kor?> </td> <td><?=$s_eng?> </td>
<td><?=$s_math?></td> <td><?=$s_hist?> </td>
<td><?=$s_sum?> </td> <td><?=$s_avg?> </td>
<td></td>
</tr>
<tr>
<td> </td>
<td> 평균 (<?=$i?>명) </td>
<td><?=round($s_kor / $i, 1)?> </td> <td><?=round($s_eng / $i, 1)?> </td>
<td><?=round($s_math / $i, 1)?></td> <td><?=round($s_hist / $i, 1)?> </td>
<td><?=round($s_sum / $i, 1)?> </td> <td><?=round($s_avg / $i, 1)?> </td>
<td></td>
</tr>
º 이름에 링크걸기
<td><a href=edit.php?sno=<?=$row['sno']?>
<?=$row['sname']?></a></td>
º edit.php
form.php 를 가져와서
<div id="section1">
학생 성적 수정하기 <br>
</div>
.
.
action=update_ok.php
<tr><td colspan=2 align=center><input type=submit value="수정하기"> </td></tr>
º 학번 검색창에 3 검색하고 그 중 하나 수정했을 때 그대로 3 검색한 화면뜨게 하기
<? include "top.php" ?>
<? include "DBConn.php" ?>
<?
$sno=$_GET['sno'];
$ch1=$_GET['ch1'];
$ch2=$_GET['ch2'];
$SQL = " select * from examtbl where sno=$sno ";
$result = $conn -> query($SQL);
$row = $result ->fetch_assoc();
?>
<style>
table{
width: 350px ;
height:300px ;
}
td{
text-align:center;
}
</style>
<script>
function ck1(){
if (f1.sno.value == "") {
alert("학번을 입력해 주세요");
f1.sno.focus();
return false;
}else{
alert("학생 성적이 입력 되었습니다.");
}
}
function ck2(sno, ch1, ch2){
location.href="delete.php?sno="+sno+"&ch1="+ch1+"&ch2="+ch2;
}
</script>
<section>
<br><br>
<div id=section1>
학생성적수정하기
</div>
<br>
<div align=center>
<form name=f1 action=update_ok.php onSubmit="return ck1()" method=get >
<input type=hidden name=ch1 value="<?=$ch1?>" >
<input type=hidden name=ch2 value="<?=$ch2?>" >
<table border=1>
<tr><td>학 번</td><td><input type=text name=sno value="<?=$row['sno']?>" > </td></tr>
<tr><td>이 름</td><td> <input type=text name=sname value="<?=$row['sname']?>" ></td></tr>
<tr><td>국 어</td><td> <input type=text name=kor value="<?=$row['kor']?>" ></td></tr>
<tr><td>영 어</td><td> <input type=text name=eng value="<?=$row['eng']?>" ></td></tr>
<tr><td>수 학</td><td> <input type=text name=math value="<?=$row['math']?>" ></td></tr>
<tr><td>역 사</td><td> <input type=text name=hist value="<?=$row['hist']?>" ></td></tr>
<tr><td colspan=2 align=center><input type=submit value="수정하기" >
<input type=button value="삭제하기" onClick="ck2('<?=$sno?>','<?=$ch1?>','<?=$ch2?>')" >
</td></tr>
</table>
</form>
</div>
</section>
<? include "bottom.php" ?>
º update_ok.php
<? include "DBconn.php" ?>
<?
$ch1 = $_GET['ch1'];
$ch2 = $_GET['ch2'];
$sno = $_GET['sno'];
$sname = $_GET['sname'];
$kor = $_GET['kor'];
$eng = $_GET['eng'];
$math = $_GET['math'];
$hist = $_GET['hist'];
$SQL = "update examtbl set sno='$sno',
kor='$kor', eng='$eng',
math='$math', hist='$hist' " ;
$SQL = $SQL . "where sno='$sno'" ;
$conn -> query($SQL);
?>
<script>
location.href="list.php?&ch1=<?=$ch1?>&ch2=<?=$ch2?>" ;
</script>
º 삭제버튼만들기
php에서 자바스크립트로 넘어가는 건 할 수 있는데
자바스크립트에서 번역한 것을 서버값으로 받을 수는 없다
edit.php에서
<input type=button value="삭제하기" onClick="ck2(<?=$sno?>)" 하고
function ck2(sno){
alert("학번:" + sno );
}
º delete.php
<? include "DBConn.php" ?>
<?
$sno = $_GET['sno'];
$ch1 = $_GET['ch1'];
$ch2 = $_GET['ch2'];
$SQL ="delete from examtbl where sno ='$sno' " ;
$conn -> query($SQL);
?>
<script>
location.href="list.php?ch1=<?=$ch1?>&ch2=<?=$ch2?>" ;
</script>
º 자료실
*오토셋에
http://127.0.0.1/phpmyadmin/index.php
Create table member(
sno varchar(10) not null primary key ,
img varchar(20),
addr varchar(40)
);
추가하기
method=post
enctype="multipart/form-data"
필수 !!
º member.php
form.php복붙
<? include "top.php"?>
<style>
table{
width:350px;
height: 300px;
}
td{
text-align:center;
}
</style>
<script>
function ck1(){
if(f1.sno.value == ""){
alert("학번을 입력해 주세요");
f1.sno.focus();
return false;
}else{
alert("학생 성적이 입력 되었습니다.");
}
}
</script>
<section>
<br><br>
<div id="section1">
학생 정보 입력 <br>
</div>
<br>
<div align=center>
<form name=f1 action=member_ok.php
onSubmit="return ck1()" method=post
enctype="multipart/form-data">
<table border=1>
<tr><td>학 번</td> <td><input type=text name=sno></td></tr>
<tr><td>주 소</td> <td><input type=text name=addr></td></tr>
<tr><td>사 진</td> <td><input type=file name=img></td></tr>
<tr><td colspan=2 align=center><input type=submit value="회원가입"> </td></tr>
</table>
</form>
</div>
</section>
<? include "bottom.php"?>
º member_ok.php
form_ok.php복붙
<? include "DBconn.php" ?>
<?
$sno = $_REQUEST['sno'];
$addr = $_REQUEST['addr'];
$mfile = $_FILES['img']['name'];
$tmp = $_FILES['img']['tmp_name'];
move_uploaded_file($tmp, "./img/$mfile");
$SQL = "insert into member (sno, addr, img) " ;
$SQL = $SQL . " values ('$sno', '$addr, '$mfile') " ;
$conn -> query($SQL);
?>
<script>
location.href="list.php" ;
</script>
young이 들어온 것을 확인할 수 있음
º member_ok.php
덮어씌기 말고 새파일로..
<? include "DBconn.php" ?>
<?
$sno = $_REQUEST['sno'];
$addr = $_REQUEST['addr'];
$mfile = $_FILES['img']['name'];
$tmp = $_FILES['img']['tmp_name'];
if($mfile ==""){
$mfile='space.jpg';
}else {
if(file_exists("./img/$mfile")) {
$f_fname = basename($mfile, strrchr($mfile, "."));
$randomNum = date("His",time());
$fileinfo = pathinfo($mfile);
$ext = $fileinfo['extension'];
$mfile = $f_fname."_".$randomNum.".".$ext;
move_uploaded_file($tmp, "./img/$mfile");
}else{
move_uploaded_file($tmp, "./img/$mfile");
}
}
$SQL = "insert into member (sno, addr, img) " ;
$SQL = $SQL . " values ('$sno', '$addr, '$mfile') " ;
$conn -> query($SQL);
?>
<script>
location.href="list.php" ;
</script>
원래는 덮어씌워지는데 똑같이 cat을 넣으니까 5시48분40초에 새파일로 들어옴
º member_list.php
<? include "top.php" ?>
<? include "DBConn.php" ?>
<?
$SQL = "select * from member " ;
$result = $conn -> query($SQL);
?>
<style>
table{
width: 500px ;
}
td{
text-align:center;
height: 25px ;
}
</style>
<section>
<br>
<div id=section1>
성적조회목록
</div>
<br>
<div align=center>
<table border=1>
<tr> <td>학번</td> <td>주소</td><td>파일명</td><td>사진</td>
</tr>
<?
while( $row = $result ->fetch_assoc() ) {
?>
<tr> <td><?=$row['sno']?></td>
<td><?=$row['addr']?></td>
<td><?=$row['img']?> </td>
<td><img src=./img/<?=$row['img']?> width=50 height=50> </td>
</tr>
<? } ?>
</table>
</div>
</section>
<? include "bottom.php" ?>
'Visual studio (PHP)' 카테고리의 다른 글
HTML --성적조회 프로그램Ver 1.0 (2) (0) | 2022.06.21 |
---|---|
HTML -- 성적조회 프로그램 Ver1.0 (1) 코드정리 (0) | 2022.06.21 |
HTML -- 학생 성적처리 ver 11 코드정리 (0) | 2022.06.20 |
HTML --폼 태그 (0) | 2022.06.17 |
HTML --학생 성적처리 ver 11 (폼태그, 자바스크립트,오토셋) (0) | 2022.06.17 |