웹 애플리케이션 만들기

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. 김현태
    강의 2번부터 다시 보기
  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
  3. 이근환
    2017-12-09 수강 12일차

    수강완료하였습니다!

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

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

    감사합니다!!:)
  4. 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가 보이질 않네요ㅠㅠ 어떻게 해야될까요?;
              • Jisu Lim
                감사합니다. 내려가는 길에 다리가 풀리네요ㅠ
              • 흑흑
                localhost의 서버 DNS주소를 찾을 수 없다고 나오는데 뭐가 잘못된걸까요..?
                비트나미 서버 재시작해봐도 같은 문제가 발생하네요 ㅜㅜ
              • 리브
                실습2에서부터 막히네요 ㅠ_ㅠ

                Warning: mysql_query() expects parameter 1 to be string, object given in D:\File\Bitnami\wampstack-5.4.40-0\apache2\htdocs\index.php on line 4

                Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in D:\File\Bitnami\wampstack-5.4.40-0\apache2\htdocs\index.php on line 5

                Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in D:\File\Bitnami\wampstack-5.4.40-0\apache2\htdocs\index.php on line 22

                무슨 오류일까요..

                다른분들도 오류들 많이 나시나봐요 ㅠ_ㅠ 이번강의 정말 어렵네요
              • JH Chae
                수강 완료했습니다. 감사합니다.

                궁금한 것이 하나 있는데요..
                실습5 영상에서 14분 쯤에서 복붙하는 부분

                $result = mysqli_query($conn, $sql);
                이 부분은 변수 $result로 지정해주지 않고

                mysqli_query($conn, $sql);
                이렇게만 해줘도 되는 것 아닌지요??

                전체적으로 주석달면서 복습 중에 갑자기 의문이 들어 여쭤봅니다!!
              • 텍스트 필드에 loop , 작성자 이름, description 채워넣고 submit 했는데 db에 추가가 안되요! index.php로 다시 돌아왔을때 loop라는 title 이 추가가 안됩니다 ㅠ
              • J_Project
                와 엄청 기억이 가물가물하긴한데, 저는 아마 새로 깔아서 괜찮아 졌던걸로 기억합니다.
                강의 중에 버그 잡기 편하게 설정하는 ini파일을 만지다가, ini파일이 통째로 날아가서.
                아파치에 mysqli가 연동이 안되었습니다...
                대화보기
                • Theo Lee
                  index.php 파일에서 2번째 라인 보시면, undefined function mysqli_connect() 라고 적어져 있으니까...

                  이고잉님 것을 복사해서 붙여넣기 하셔서 연결이 안되시것 같은데.... 아마도 이고잉님 비번인 1111111 을 지우시고, 본인 비밀번호를 입력하시면 될듯합니다. 그것도 아니시라면... 저도 잘 모르겠네요,.
                  대화보기
                  • 열정을가진
                    Fatal error: Call to undefined function mysqli_connect() in C:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 2

                    이건 어떻게 해결해요?
                  • 열정을가진
                    저도 그런데 혹시해결하셨어요?
                    대화보기
                    • 브링
                      혹시 저와 같으신 분들,,,

                      전 데이터 insert하고 commit을 안한게 원인이었네요,,,

                      혹시 오류 잡는데 참고하세요,,,
                      대화보기
                      • 브링
                        저도 실습2번에서 아래와 같은 에러로 고생중이네요,,

                        Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in D:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 6

                        var_dump값으로 보니 result값이 bool(false) 여서 문제가 발생한것 같은데,, 혹시 동일문제로 해결하신분 계신가요,,?

                        <?php
                        $conn = mysqli_connect("localhost", "root", "ysd31300");
                        mysqli_select_db($conn, "opentutorials");
                        $result = mysqli_query($conn , "SELECT * FROM topic");
                        echo var_dump($result);
                        echo $row=mysqli_fetch_assoc ($result);
                        ?>
                      • 왕호랑
                        Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /Applications/mampstack-7.0.23-0/apache2/htdocs/index.php on line 6

                        위의 error는 아마도 mysqli_query(~)" 함수에서 $result가 제대로 리턴 안되서 발생하는 것으로 보입니다.
                        table 이름이 제대로 되어 있는지 확인 해 보세요.
                        저도 table 이름을 opentutorials 인데 opentutorial이라고 s를 빼먹어서 동일 error 발생했었습니다.
                        대화보기
                        • 순낚
                          Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /Applications/mampstack-7.0.23-0/apache2/htdocs/index.php on line 6

                          이 에러때문에 고생하시는 분 안계신가요?(실습2)
                          진행이 안되어 어렵네요 ㅠㅠ
                        • Audrey Pyo
                          Use of undefined constant -assumed 에러가 저두 나타나네요 ㅠㅠㅠ
                          댓글에 말씀 해주신것 처럼 비밀번호도 따옴표로 묶었는데 해결이 안됩니다 ㅠㅠ 어떻게 해야할까요...
                        • mirong1
                          폰트를 영어전용(저 같은 경우 Bitstream Vera Sans Mono)으로 바꾸시면 역슬래쉬 모양이 나타나니 걱정하지 않으셔도 됩니다. 아톰에서 폰트는 File>Settings>Editor>Font family에서 바꿀 수 있습니다. 빈칸이 나타나는데 폰트 이름을 입력하면 바뀐 폰트가 적용됩니다.
                          대화보기
                          • \이 표시가 역슬래시로 표시되시는거면 동일한 겁니다~~
                            대화보기
                            • pepper
                              혹시 저처럼 atom에서 \표시 타이핑 안되는 사람 있나요 ㅠㅠ?
                            • 끝까지 달리자~~!!! 근데 어렵당;;
                            • 송성태
                              감사합니다.
                              감만 잡았습니다.
                              몇 번 더 듣고 연습해봐야 겠습니다.
                            • 호야
                              와우 다 왔네요.. 넘 좋은 강의 감사합니다.
                            • 완료.. 넘 어렵네용..
                            • 파이쏭
                              9월28일 시작 .. mysql 부터는 어렵다 ㅠ ㅠ
                            버전 관리
                            egoing
                            현재 버전
                            선택 버전
                            graphittie 자세히 보기