베스트 셀러등록 , 베스트셀러 목록을 추가했다.
등록 선택시 이미지를 포함한 내용추가 php로 이동
<form action="process/best_process.php" method='post' enctype="multipart/form-data">
파일을 등록할때는 필수적으로 form 안에 enctype="multipart/form-data" 를 추가해주어야한다.
그리고 전송을 하게되면 $_FILES['이름'] 안에 서버내에 임시위치에 파일이 추가된다.
등록하면 sql 테이블에 img의 임시파일을 내가 원하는 위치로 이동시켜 저장하고 해당 경로를 컬럼명 img에 넣어준다.
move_uploaded_file($file['tmp_name'],"C:Apache24/htdocs/php/book/img/".$file['name']);
php로 이미지파일을 저장하는 방법.
move_uploaded_file(현재파일의위치, '저장할위치'); 으로 저장하면 된다.
처음 post로 내용을 받아오면 'tmp_name'에 임시로 저장된 위치가 저장되기에 그곳에잇는 파일을 내가 원하는 위치로 이동시켜 저장했다.
$query = "insert into books(`title`,`price`,`desc`,`img`)
values('{$_POST['title']}',{$_POST['price']},'{$_POST['desc']}','img/{$file['name']}')";
테이블안에는 이미지를 저장할 수 없기에 이미지가 있는 위치를 저장하도록 한다.
img/파일명
내용을 넣을때 ' < 는 이스케이프문을 함께 사용하지 않으면 사용이 불가능하니 `(백틱)을 사용하도록 한다.
베스트셀러의 목록이다.
데이터를 가져올때 img컬럼에 값이 없으면 가져오도록 만들었다.
$conn = mysqli_connect('localhost','root','1234','test');
$query = "select * from books where img is not null";
$result = mysqli_query($conn,$query);
function printList(){
global $result;
while($row = mysqli_fetch_array($result)){
echo "
<li>
<a href='bestdetail.php?id={$row['id']}'><img src='{$row['img']}'></a>
</li> ";
}
}
그리고 이미지를 클릭하면 GET방식으로 ID를넘겨 상세내용을 볼 수 있도록 만들었다.
$bookid = $_GET['id'];
$conn = mysqli_connect('localhost','root','1234','test');
$query = "select * from books where id={$bookid}";
$result = mysqli_query($conn,$query);
$row = mysqli_fetch_array($result);
받아온 GET['id']로 자료를 조회해 해당 자료만 뿌려주면 완료!
※폼태그로 파일을 전송할때
1) form 에 속성 추가
enctype="multipart/form-data"
2) 폼으로 전송된 파일은 php슈퍼글로벌 $_FILES 에 담겨있음
실제 저장되는 임시위치 $_FILES['img']['tmp_name']
3) 임시 위치에서 원하는 위치로 파일을 업로드
move_uploaded_file(임시위치,이동할위치);
'프론트앤드 수업' 카테고리의 다른 글
[Mysql] 데이터베이스 복사,백업,이동[테이블 포함] (0) | 2022.06.13 |
---|---|
[php,mysql] 연동 게시물이미지 삭제, 수정[파일삭제까지] (0) | 2022.06.03 |
[mysql,php] 간단한 로그인,로그아웃 만들어보기 (0) | 2022.05.30 |
[mysql,php] 쿠키,세션 생성 (0) | 2022.05.30 |
[mysql,php] 게시판 페이지( 이전, 다음 ) 버튼만들기 (0) | 2022.05.30 |