웹 애플리케이션 만들기

MySQL 실습

MySQL 실습 1 

실습환경으로 codeanywhere를 쓰고 계신 분은 아래 영상의 13:30 즈음의 영상의 코드를 다음와 같이 바꿔서 사용하시면 됩니다. 비밀번호를 지정하지 않으면 됩니다. $conn = mysqli_connect('localhost', 'root', '');

MySQL 실습 2

MySQL 실습 3

MySQL 실습 4

MySQL 실습 5

index.php

<?php
$conn = mysqli_connect("localhost", "root", 111111);
mysqli_select_db($conn, "opentutorials");
$result = mysqli_query($conn, "SELECT * FROM topic");
?>
<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="http://localhost/style.css">
</head>
<body id="target">
	<header>
    <img src="https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/course/94.png" alt="생활코딩">
		<h1><a href="http://localhost/index.php">JavaScript</a></h1>
  </header>
	<nav>
		<ol>
    <?php
    while( $row = mysqli_fetch_assoc($result)){
      echo '<li><a href="http://localhost/index.php?id='.$row['id'].'">'.$row['title'].'</a></li>'."\n";
    }
    ?>
		</ol>
	</nav>
  <div id="control">
    <input type="button" value="white" onclick="document.getElementById('target').className='white'"/>
    <input type="button" value="black" onclick="document.getElementById('target').className='black'" />
    <a href="http://localhost/write.php">쓰기</a>
  </div>
  <article>
  <?php
  if(empty($_GET['id']) === false ) {
      $sql = 'SELECT * FROM topic WHERE id='.$_GET['id'];
      $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_assoc($result);
      echo '<h2>'.$row['title'].'</h2>';
      echo $row['description'];
  }
  ?>
  </article>
</body>
</html>

 write.php

<?php
$conn = mysqli_connect("localhost", "root", 111111);
mysqli_select_db($conn, "opentutorials");
$result = mysqli_query($conn, "SELECT * FROM topic");
?>
<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="http://localhost/style.css">
</head>
<body id="target">
	<header>
    <img src="https://s3.ap-northeast-2.amazonaws.com/opentutorials-user-file/course/94.png" alt="생활코딩">
		<h1><a href="http://localhost/index.php">JavaScript</a></h1>
  </header>
	<nav>
		<ol>
    <?php
    while( $row = mysqli_fetch_assoc($result)){
      echo '<li><a href="http://localhost/index.php?id='.$row['id'].'">'.$row['title'].'</a></li>'."\n";
    }
    ?>
		</ol>
	</nav>
  <div id="control">
    <input type="button" value="white" onclick="document.getElementById('target').className='white'"/>
    <input type="button" value="black" onclick="document.getElementById('target').className='black'" />
    <a href="http://localhost/write.php">쓰기</a>
  </div>
  <article>
    <form action="process.php" method="post">
      <p>
        제목 : <input type="text" name="title">
      </p>
      <p>
        작성자 : <input type="text" name="author">
      </p>
      <p>
        본문 : <textarea name="description"></textarea>
      </p>
      <input type="submit" name="name">
    </form>
  </article>
</body>
</html>

process.php 

<?php
$conn = mysqli_connect("localhost", "root", 111111);
mysqli_select_db($conn, "opentutorials");
$sql = "INSERT INTO topic (title,description,author,created) VALUES('".$_POST['title']."', '".$_POST['description']."', '".$_POST['author']."', now())";
$result = mysqli_query($conn, $sql);
header('Location: http://localhost/index.php');
?>

style.css

body.white{
  background-color:white;
  color:black;
}
body.black{
  background-color:black;
  color:white;
}

header{
  border-bottom:1px solid gray;
  padding:20px;
}
nav {
  border-right:1px solid gray;
  width:200px;
  height:600px;
  float:left;
}
nav ol{
  list-style:none;
  padding:0;
}
article{
  float:left;
  padding:20px;
  width:500px;
}
#control{
  float:right;
}
header img{
  float:right;
  height:100px;
}

소스코드

github

Sound of coding

sound of coding 전체 보기 

댓글

댓글 본문
작성자
비밀번호
  1. 1/17
    접해보지 못한 내용이라 이해하는데 시간이 꽤 걸렸지만,
    정말 유익한 강의입니다!
    감사합니다.^^
  2. 쿠쿠
    MySQL 서버 접속 비밀번호가 맞는지 확인해보세요.
    저도 같은 오류가 있었는데,
    111111 대신 '내비빌번호'를 입력하니 문제가 사라졌네요.
    대화보기
    • 슝태
      20180117
    • 이롸즈
      [php7:emerg] [pid 59514] [client ::1:64953] PHP Parse error: syntax error, unexpected 'mysqli_select_db' (T_STRING) in /Applications/mampstack-7.1.12-0/apache2/htdocs/index.php on line 3

      라는 에러가 자꾸 나는데요, 어떤 부분이 잘못된 것인지를 모르겠네요.

      타이핑한 것이라고는
      $conn=mysqli_connect("localhost","root",'******')
      mysqli_select_db($conn, "newdatabase");

      뿐인데 바로 에러가 나버리네요 (******)부분은 제 비밀번호이고 데이터베이스 이름 또한 제가 정했습니다.
      어떻게 해결할 수 있나요?
    • 서동화
      얼마전 유튜브로 강의를 접했다가 강의가 너무 재미있고 내용이 쏙쏙들어와서 계속 공부하는 중입니다.

      강의를 듣는중에 궁금한 점이 생겨서 질문남깁니다.

      'MySQL 실습' 강의에 사용된 index.php ~ 이하 파일들을 관리하는 제 컴퓨터 서버가 아닌, 다른 PC나 스마트폰에서도 서버로 접속할수 있는 방법이 있나요??
    • 짜요짜요
      연습a.php로 저장하니까 404 NOT FOUND라고 뜨더라구요,
      혹시 버그가 있나 디버깅하다가 혹시나 해서 a를 지우고 연습.php로 하니까 되던데
      주소창에 한글 쓰면 왜 못 읽어요??
    • 천사동전
      아래 코드에서 점이랑 반따옴표 찍은 규칙 좀 알려주세요.
      '.$row['id'].'라고 되어 있는데, 양쪽의 점이 반따옴표 밖에 있으면 안 되는 거예여???

      while( $row = mysqli_fetch_assoc($result)){
      echo '<li><a href="http://localhost/index.php?id='.$row['id'].'">'.$row['title'].'</a></li>'."\n";
    • ryan
      크롬으로 보통 강의들을 보고 있는데, 실습 3에서 style.css에 있는 요소들의 padding 값을 바꿔서 저장 후, 새로고침을 하면 크롬에는 바로 적용이 안되고, 익스플로어에서는 바로 적용이 됩니다. 크롬에도 바로 적용되는 방법은 없나요...?
    • 삐따꼬라스
      "\n"이 안먹혀서 찾아보니 구글에서는<br>을 쓰라고 나오던데 "\n"이 왜 안되는거죠? "\n"와 <br>의 차이점이 먼가요?
    • Eonis_Milan
      안녕하세요 생활코딩 보면서 웹을 공부하는 학생입니다.
      지금 실습 3번까지 잘 따라왔습니다.
      그런데 실습3번을 마치고 첫 페이지로 돌아가면

      Notice: Undefined index: id in E:\Bitnami\apache2\htdocs\index.php on line 35

      Notice: Undefined index: id in E:\Bitnami\apache2\htdocs\index.php on line 37

      Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in E:\Bitnami\apache2\htdocs\index.php on line 39

      이러한 경고메세지가 뜹니다... 에러는 아닌거 같은데 문구를 보면 정의가 되지 않은 id가 있고 그리고 경고 구문에는 부울값이 0이라는 경고를 주는 뜻이라고 생각하고 있습니다.. 그런데 이러한 에러문구를 웹브라우저 상에 나오지 않게 하려면 어떻게 해야하는지 모르겠습니다....아시는 분이 계시다면 답변 부탁드립니다..
    • PassionOfStudy
      18-01-05 9일차 - 2번째 강의

      수강완료!


      본래 12월까지 완강하려고 했지만 미루다가 1월 까지 왔네요 ㅠㅠ
      이번 주 주말을 이용해서 완강하겠습니다~!

      코딩야학3기 화이팅입니다. 10일간의 프로젝트도 완성할 수 있도록 노력하겠습니다.
    • 이도현
      웹은 처음 다루어보는데, 수업이 너무 재밌네요.
      좋은 강의 감사합니다.
    • 황성찬
      DB를 이용하지 않은 부분들은 정상적으로 출력됩니다. ex)생활코딩 로고
      대화보기
      • 황성찬
        index.php를 작성하고 index.php 웹페이지로 접속 했을때

        Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\Bitnami\wampstack-7.1.12-0\apache2\htdocs\phpjs\index.php on line 2

        Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in C:\Bitnami\wampstack-7.1.12-0\apache2\htdocs\phpjs\index.php on line 3

        Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\Bitnami\wampstack-7.1.12-0\apache2\htdocs\phpjs\index.php on line 4

        Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in C:\Bitnami\wampstack-7.1.12-0\apache2\htdocs\phpjs\index.php on line 20

        위와 같은 에러가 뜨는데 에러들을 좀 살펴보니까 DB를 이용해서 웹 페이지를 구성하려고 했던 부분들에서 에러가 발생하고 맨 처음 에러에서는 DB에 접속을 방해 받았다고 하는 것 같은데
        해결할 수 있는 방법이 있을까요?
      • Narin MI
        저 혹시 erro.log 열때 오류가 나는데 저만 그런건가요???
        오류를 보면서 실습을 따라하려고 하는데 열리지가 않네요...ㅜ
      • 김현태
        4번부터 보기
      • 김현태
        앞 강의 예제문에 있었네요. ㅎㅎㅎㅎ
        대화보기
        • 김현태
          opentutorials 라는 DB가 저는 없는데 언제 만들었는지 잊어 버렸네요. 혹시 DB 설정 아시는 분 계신가요? 도움 부탁드립니다.
        • 김현태
          혹시 비번에 ' ' <--붙이셨습니까? 이것을 비번에 붙이셔야 에러가 사라집니다.
          대화보기
          • 김현태
            네, 감사합니다~^^
            대화보기
            • php parse error 는 php구문안에서 문법이 잘못 사용된것 같고, syntax error 는 '.'이나 ';' 이런 기호들을 잘못 사용 한건 아닌지 확인 해보세요 맨 마지막줄에 on line 28,은 28번째 줄에 문제가 있다는 말이에요
              대화보기
              • 정윤호
                실습 1부터 5까지 자연스럽게 연계가 안되는 것 같은데...
                순서대로 따라만해도 똑같이 출력이 되야 맞는 것 같은데;;
                쓰기부문부터 계속 안되네요.
                하도 안되서 소스코드 복사해서 넣어도 안된다는 ;;
                저만 그런가요... ???
              • 김현태
                강의 2번부터 다시 보기
              • 김현태
                아. 이상하게 저는 버튼 만드는 부분부터 되지 않더니 여전히 로그를 보면 그 부분에서 에러가 납니다. 에러로그는 다음과 같습니다. 문법이 잘못되었다는데 저는 이틀동안 확인해 봐도 같게 코딩했습니다. 이 에러의 메세지 내용만이라도 알게 도와주십시요. ㅠㅠ

                [Tue Dec 12 15:58:08.914430 2017] [php7:crit] [pid 3948:tid 984] [client ::1:64264] PHP Parse error: syntax error, unexpected ''."\\n";\r' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' in C:\\Bitnami\\wampstack-7.1.12-0\\apache2\\htdocs\\index.php on line 28
              • 이근환
                2017-12-09 수강 12일차

                수강완료하였습니다!

                지금까지 본 강의중에 이해하기위해 제일 많이 봤던 강의같습니다!

                알기쉽게 설명해주셔서 어렵지만 포기하지않고 수업을 들었던것 같습니다!

                감사합니다!!:)
              • ConorMcgregor
                정말 감사합니다! 해결 완료했어요
                대화보기
                • 김준범
                  이번 강좌부터 급 어려워지는군요. 일단 개념 이해만 하려고 합니다. 장점은 이 강좌를 들으니 자바스크립트가 쉽게 느껴진다는 것입니다.
                • 박인호
                  11-26
                  수강완료.
                  정상에 올라왔습니다. 하산할 일만 남았다고 생각하고 가벼운 발걸음으로 다음진도를 나가겠습니다.
                • 주찬시
                  혹시 Bitnami 설치중 MySQL 포트를 3306 이 아닌 다른 것으로 하셨나요?
                  예를 들어 3307 이라던지.. (이전에 MySQL이 설치된 상태에서 Bitnami를 설치하셨다면 이런 상황이 발생합니다.)
                  그러시면 소스에서
                  mysqli_connect('localhost', 'root' ~~
                  대신
                  mysqli_connect('localhost:3307', 'root' ~
                  요렇게 해보세요.
                  대화보기
                  • ConorMcgregor
                    Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\Bitnami wamp\apache2\htdocs\index.php on line 2

                    이 에러가 계속 발생합니다 ㅠㅠ 도와주세요 왜 접근이 거절당하는거죠
                  • atnskynst
                    11/21
                  • 서성진
                    잘 봤습니다.
                    다만, 지금 부터 조금 어려워 지기 시작하는군요. ㅠㅠ
                    2번 넘어 3번까지 봤지만, 더 봐야 할 것 같습니다.
                    하지만 일단은 넘어가 보려 합니다.
                  • schyyy
                    저는 왜 null 이 안 뜨죵?
                  • Jeffery
                    코드 볼수 잇을까요?
                    대화보기
                    • 도도동
                      11/16 이해하는데 좀 어려움이 있어서 ㅠㅠ 3번씩 본다고 시간이 오래 걸렸어요..
                      좀 더 집중해서 한 번보고도 이해할 수 있도록 해볼게요!...
                      이해 안됐던 부분도, 하나하나 차곡차곡 말씀하신 부분 놓치지 않고 살펴보니 이해가 되었어요!
                      좋은 강의 만들어 주어서 너무 감사합니다!!!...
                    • 유상원
                      2017-11-11 완료!
                    • Always
                      실습3 진행중인데..index.php 35번째줄인 $result에서 개속오류가 나네요...어떻게 해결해야 할까요?...
                      Parse error: syntax error, unexpected '$result' (T_VARIABLE) in C:\Bitnami\wampstack-5.4.40-0\apache2\htdocs\index.php on line 35
                    • 지나가다
                      index 두번쨰 라인에서 에러나시는 분들 아마 문자를 섞은 비밀번호를 사용 했을떄 큰따옴표로 안묶어주셔서 에러가 나는거 같습니다
                      저도 예제에선 비밀번호만 큰따옴표가 없길래 그대로 따라했을떄 해당 에러가 출력되었었는데
                      큰따옴표로 묶어주고 나니 오류가 없어졌네요
                      다들 화이팅
                      좋은강의 만들어주셔서 감사합니다
                    • 성훈
                      자문자답입니다. php 의 include 를 써서 해결했습니다.
                      다시 궁금한건 이고잉님의 include 강의에선
                      include "~~.php";
                      이런식으로 쓰게 되어있는데
                      include('~~.php');
                      이렇게 써도 되더라구요. 주소 중간에 $_GET으로 정보를 가져와서 사용할경우엔 아래 괄호를 이용해야
                      작동됩니다.
                      대화보기
                      • 강동균
                        Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\Bitnami\wampstack-7.1.10-1\apache2\htdocs\index.php on line 2

                        Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in C:\Bitnami\wampstack-7.1.10-1\apache2\htdocs\index.php on line 3

                        Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\Bitnami\wampstack-7.1.10-1\apache2\htdocs\index.php on line 4

                        비밀번호 맞게 했는데 왜 이런 오류가 뜰까요...
                      • 실습2를 진행하는 과정에서
                        목차를 mysql의 title로 바꾼 후 클릭하면
                        ERR_SSL_PROTOCOL_ERROR가 뜹니다.
                        보안 관련 문제 같은데 어떻게 해결해야 할지 모르겠네요..ㅜ
                        도움 부탁드립니다.
                      • I love computer
                        드디어 산에 올라왔군요!
                        이제 열심히 하산 하도록 하겠습니다.
                        좋은 강의 감사합니다.
                      • 성훈
                        만약 index.php에서 file_get_contents 로 1.txt 파일 내용을 불러오는데 1.txt 파일안의 내용에 DB값을

                        출력하는 php문을 넣어서 동작하게 할순없나요?

                        index.php에서 1,2,3,4,5 각각의 메뉴구성을 하고 그 메뉴 버튼을 누를때 해당 메뉴의 내용을 불러오게 해놨는데

                        DB를 적용시켜 불러올 내용을 각 메뉴의 파일 안에서 동작하게 하려하는데 php문 적용이 안되네요
                      • 소심한사업가
                        Call to undefined function mysqli_connect() in C:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 2
                        정의되지 않은 상수 사용했다는 뜻이에요. 그 이하는 어디 위치에 오류가 났는지 알려주는 거고요~

                        Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in C:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 3
                        이 것들은 위에 line 2를 해결하면 line3도 같이 해결될 문제인데 매개 변수 1이 mysqli, 부울 지정이 될 것이라는 뜻?? 인 거 같네요

                        즉, 대부분이 $conn = mysqli_connect("localhost", "root", 본인 비밀번호); 여기에 오류가 났다고 볼 수 있는 데요
                        그중에 "본인비밀번호" 부분이 오류일 것이라 예상됩니다.

                        php에서 배열 사용시, php5.3 이전에는 따옴표 없이도 문자열로 구분 지어서 사용이 가능했지만 이후 규제에서는 엄격해져서 따옴표 없이는 문자열로 구분 짓지 않게 사용한다고 합니다.
                        그래서 => $conn = mysqli_connect("localhost", "root", "본인 비밀번호"); 큰따옴표만 추가하면 됩니다.
                        추가적으로 본인 비밀번호도 확인해주세요(대소문자 구분합니다.)
                      • Seungho
                        답변 감사드립니다. 그런데 3.php의 2번째 라인은 문제가 없거든요. Ctrl + F5 눌러 cache rebooting을 해도 변화가 없네요. 저는 bitnami-wampstack-7.1.10-1 버전입니다.
                        대화보기
                        • ksjuutl
                          저도 에러가 떴는데 혹시 도둠될까 써봐요

                          Fatal error: Function name must be a string in

                          위에 에러는 $result = mysqli_query($conn, "SELECT * FROM topic");
                          이문장에서 발생했는데 제가 SELECT문의 FROM을 FORM으로 잘못써서 났었어요

                          mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
                          위에거는 echo $row['id']; 에서 났는데
                          [ 'id'] 괄호를 ('id') 로 잘못써서 났었어요
                        • R.Rouge
                          비트나미 구버전 (저는 5.4.40-0)을 이용하는경우에 이전에 강의하셨던 php.ini의 opcache 부분설정이

                          없어서 그런지 소스코드 내용이 실시간 반영이 안되더라구요. 그래서 계속 브라우저 캐쉬를 지우면서 했습니다.

                          혹시 위와 같은 문제가있다면 캐쉬를 지우면서 해보시던지 좀더 높은버전을 설치하신후에 수정해서 사용하시면 되겠네요. 이전 강의들은 문제없는데 이번 강의에 유독 반영이안되는부분이 있더라구요.

                          좋은강의 감사합니다. :)
                        • R.Rouge
                          3.php의 2번째 라인을 확인 해보시면 될거같습니다.
                          대화보기
                          • Seungho
                            My SQL 실습4에서 </php echo $_GET['title']; ?> 입력 및 저장하고 reload하면 'Notice: Undefined index: title in C:\Bitnami\wampstack-7.0.23-0\apache2\htdocs\php\3.php on line 2'라는 에러 메세지가 나오는데 어디가 잘못된 건지 궁금합니다.
                          • Sunyoung Ahn
                            저는 1번 실습부터 안되네요ㅠㅠ 뭐가 문제일까요ㅠㅠ
                            확인을 해보니 index.php가 보이질 않네요ㅠㅠ 어떻게 해야될까요?;
                          버전 관리
                          egoing
                          현재 버전
                          선택 버전
                          graphittie 자세히 보기