18일차_PHP

서창민·2023년 4월 5일
0

HTML

목록 보기
10/18
post-thumbnail

23.04.05 수 18일차

수업내용

  • 자료실 테이블 만들기 복습

자료실 테이블 만들기(복습)

  • 기본 이미지 추가
list.php

첨부파일이 없을 때 
기본 이미지 출력

if ($imgName!=null || $imgName!=""){
 if (file_exists("./files/$imgName")){

    // 파일의 이름만 가져온다.(김춘배이오)
    $f_name = basename($imgName, strrchr($imgName, '.'));
    echo "f_name:" .$f_name ."<br>";
    
    $time = date("His", time());
    echo "time:" .$time ."<br>";

    // 점(.)부터 확장자를 가져온다(.png)
    $ext=strrchr($imgName,'.');
    echo "ext:" .$ext;

    $imgName = $f_name."_".$time.$ext;
}
    move_uploaded_file($imgFile, "./files/$imgName");
} else{
    $imgName = "space.png";
}
  • 기본 이미지 삭제 불가 설정
delete.php

이미지 파일명이 Space.png가 아닐때
파일 삭제

<?php
    $idx = $_REQUEST['idx'];
    $img = $_REQUEST['img'];
if($img != "space.png"){
    unlink("./files/$img"); // 파일삭제
}
?>
  • 기본 이미지 수정 불가 설정
edit_ok.php
이미지 이름이 공백이거나, space.png가 아닐 때
삭제 동작
이미지 미첨부 파일 수정 시 
기본 이미지가 덮어쓰기되어 삭제되지 않도록설정


if($img!="" && $img!="space.png"){ // 두조건 모두 참 일때
    unlink("./files/$img"); // 파일삭제
}
  • 첨부파일 유무에 따른 수정 동작 IF 문
첨부파일이 파일명이 공백이 아닐 때 업로드 동작 
(공백일 경우 첨부파일이 없는경우) 
if($imgName != ""){ 
    $SQL = "UPDATE  member0403 ";
    $SQL = $SQL . " SET name='$name', pwd1='$pwd1,'";    
    $SQL = $SQL . " age='$age', etc='$etc', img='$imgName'";
    $SQL = $SQL . " where idx='$idx'";
    }else{
    $SQL = "UPDATE  member0403 ";
    $SQL = $SQL . " SET name='$name', pwd1='$pwd1',";
    $SQL = $SQL . " age='$age', etc='$etc'";
    $SQL = $SQL . " where idx='$idx'";
}
  • 항목 검색
list.php
검색창 생성 후 
검색 내용에 따른 검색 내용 출력 쿼리문 설정

--각 값 불러오기
$ch1 = $_REQUEST['ch1'];
$ch2 = $_REQUEST['ch2'];

-- 조건문 설정
if($ch1 == "" || $ch2==""){
    $SQL= "select * from member0403 order by idx desc";
}else if($ch1 =='name'){
    $SQL= "select * from member0403 where name like '%$ch2%'";
}else if($ch1 == 'age'){
    $SQL= "select * from member0403 where age like '%$ch2%'";
}

-- 리스트 개수 설정 함수
limit 시작위치, 개수
ex)
 $SQL= "select * from member0403 order by idx desc limit 0, 7";

-- 검색창 생성
<form>
<select name=ch1>
    <option value=name>이름</option>
    <option value=age>나이</option>
</select>
<input type=text name=ch2>
<input type=submit value="검색하기">
</form>
  • 페이지 나누기(이전, 다음)
list.php
이전 , 다음 버튼으로 검색창 5개씩 노출

    $num = $_REQUEST['num'];
	if($_REQUEST['num']==''){
    	$num=0;
	}else{
    	$num=$_REQUEST['num'];
	}

<?if($num==0){?>
    &emsp; 이전
<?}else{ ?>
    &emsp; <a href=psd_list0403.php?num=<?=$num-5?>>이전</a>
<? } ?>
    &emsp; <a href=psd_list0403.php?num=<?=$num+5?>>다음</a>
  • 테이블 개수 출력
-- 카운트 쿼리문 작성
    $count = "select count(*) tc from member0403"; // 쿼리문 (별칭필수)
    $result_count = $conn -> query($count); // 쿼리문
    $row_count = $result_count -> fetch_assoc(); // 실행문

<div id="title"> PHP 자료실 목록보기 (전체레코드:<?=$row_count['tc']?>) </div>
  • 마지막 페이지에서 다음 버튼 링크 제거
<? if ($num +5 < $row_count['tc']){?>
    &emsp; <a href=psd_list0403.php?num=<?=$num+5?>>다음</a>
<? }else{?>
    &emsp; 다음
<?}?>
  • 처음으로 버튼 만들기
<a href=psd_list0403.php?num=0>처음으로</a>
  • 랜덤 더미자료 추가하기
insert.php

<? include $_SERVER["DOCUMENT_ROOT"]."/include/top0403.php" ?>
<? include $_SERVER["DOCUMENT_ROOT"]."/include/dbconn0403.php" ?>
<section>
<br/>
<div align=center>

<?php

    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // 난수를 이용한 임의 랜덤 자료 추가하기
    for($i=1; $i < 11; $i++){

        $name_rand = mt_rand(0,10);
        $name_rand2 = mt_rand(111,999);
        $nameArr = array("영심이","하늘이","둘리","하니","지효",
        				 "바다","강산","파이","구름","바람이");
        $pwd_rand = mt_rand(1111,9999);
        $age_rand = mt_rand(1,30) ;
        
        $name = $nameArr[$name_rand].$name_rand2; // 배열값 호출
        $pwd1 = $pwd_rand;
        $age = $age_rand;
        $etc = '특이사항 없음';
        $imgName = 'space.png';

	// 값 입력 쿼리문 작성
        $SQL= "INSERT INTO member0403 (name, pwd1, age, etc, img)";
        $SQL= $SQL . " VALUES ('$name','$pwd1','$age','$etc','$img')";
        $conn->query($SQL);
        echo $i . ""; //값 입력 동작 확인
}

$conn->close();

?>
</div>
<br/>
</section>
<? include $_SERVER["DOCUMENT_ROOT"]."/include/bottom0403.php" ?>
  • 느낀점

오늘은 랜덤 더미 파일 생성과 하단 버튼동작 조건문이 기억에 남는다.
개인적으로 동작을 해보라는 강사님 말에 어려움을 느꼈고,
코드를 작성하는 부분에 어려움이 있었다.
그래도 오늘 방법을 알게되었으니 다시 작성해보며 복습을 했다.
이해와 암기를 동시에 병행하도록 해야겠다.
그래도 성취하는 재미를 알았으니 더 노력해야겠다!

profile
Back-end Developer Preparation Students

0개의 댓글