웹 애플리케이션 만들기

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. 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에서 바꿀 수 있습니다. 빈칸이 나타나는데 폰트 이름을 입력하면 바뀐 폰트가 적용됩니다.
              대화보기
              • jjung
                \이 표시가 역슬래시로 표시되시는거면 동일한 겁니다~~
                대화보기
                • pepper
                  혹시 저처럼 atom에서 \표시 타이핑 안되는 사람 있나요 ㅠㅠ?
                • jjung
                  끝까지 달리자~~!!! 근데 어렵당;;
                • 송성태
                  감사합니다.
                  감만 잡았습니다.
                  몇 번 더 듣고 연습해봐야 겠습니다.
                • 호야
                  와우 다 왔네요.. 넘 좋은 강의 감사합니다.
                • 완료.. 넘 어렵네용..
                • 파이쏭
                  9월28일 시작 .. mysql 부터는 어렵다 ㅠ ㅠ
                • hunter10
                  완료
                • 알파고
                  무지어렵네요 ㅋㅋㅋ

                  9/28
                • 이동희
                  두 번째 줄에서 비밀번호를 입력했는데 안 뜨길래 "" 안에 넣어봤더니 떴어요!
                • 고고싱
                  여기서부터는 비전공자의 실력이 들어나는! 난이도가 좀 있네요. 따라해보고 한번에 이해는 안가는데 다 보고 다시한번 봐야할것 같습니다.
                • 다시시작
                  완료
                • 열공
                  MySQL 실습2에서 mysqli 부분에 조회 부분에 첫번쨰 줄에 괄호갯수가 1개 더 많은 것 같아요 ..
                • 주주맘마
                  완료
                • 왔떠뻐꺼
                  완료했습니다.감사합니다.
                • 왔떠뻐꺼
                  좋은정보감사합니다.
                  대화보기
                  • Charelsavalon
                    process.php에서 5번째 줄에서 mysqli_query($conn, $sql);를 $result에 담으셨는데 이경우에 단순히 변수를 정의한 것이 아니라 코드를 실행하고 변수에 담으라는 명령인가요?
                  • sealwind
                    [TIP] codeanywhere 를 쓰시는분 중에 mysql을 phpMyAdmin를 통해서 제어하는 방법은 http://preview.xxxxxx.box.codeanywhere.com......min 또는 http://port-80.xxxxxx.box.codeanywhere.com......min 와 같이 주소마지막에 /phpmyadmin 을 추가하시고, 아이디에는 root을 패스워드는 공란으로 두고 로그인하시면 phpMyAdmin을 사용하실 수가 있습니다.
                  • 황승민
                    실습2 에서 Parse error: Invalid numeric literal in C:\Bitnami\wampstack-7.0.23-0\apache2\htdocs\index.php on line 2 같은 에러 뜨시는 분들은

                    비밀번호에 ' ' 로 감싸주시면 처리 됩니다.
                  • Charlesavalon
                    $result와 $row를 위에서와 아래에서 두번 사용하셨는데 이런 경우에 아래에서 쓰게 되면 위에서 정한 변수가 없어지고 아래에서 정한 변수로 새로 바뀌게 되는건가요??
                  • Claire P
                    실습3에서 각 article 내용 불러오는 코드를 넣고 실행해봤는데 계속 '사이트에 연결할 수 없음 localhost에서 연결을 거부했습니다.' 가 뜨네요 ㅠㅠ 무슨 문제일까요?
                  • Michael
                    완료!
                    감사합니다~
                  • SanFrancisco
                    이번 강의가 정말 산꼭대기인 것 같네요. 어려워요
                  • 최규선
                    정말감사합니다!!
                    대화보기
                    • Lee Seulgi
                      sql 문에서 select * from topic where id=1;
                      이런식으로 where 조건문 뒤에 id = 이라고 표현되어야 하는데요 = 이 없어서 그런건 아닐까요?

                      $sql = 'SELECT * FROM topic WHERE id='.$_GET['id'];

                      sql 변수 값을 이렇게 바꿔보시면 실행이 되실 것 같아요~~
                      대화보기
                      • 임성식
                        서너번 계속 다시 보면서 간신히 완료를 하기는 했는데 정말 어렵네요. 지금도 완전히 이해했다고 할 수는 없는 것 같고 간신히 그냥 따라해봤다고만 할 수 있을거 같아요.
                      • hanpanghao
                        [Tue Sep 12 01:32:11.501712 2017] [:error] [pid 13028:tid 920] [client ::1:5126] PHP Notice: Undefined index: title in C:\\Bitnami\\wampstack-5.6.31-0\\apache2\\htdocs\\php\\3.php on line 2, referer: http://localhost......tml
                        [Tue Sep 12 01:32:11.501712 2017] [:error] [pid 13028:tid 920] [client ::1:5126] PHP Notice: Undefined index: description in C:\\Bitnami\\wampstack-5.6.31-0\\apache2\\htdocs\\php\\3.php on line 4, referer: http://localhost......tml

                        이 에러 어떻게 고치죠?
                      • J_Project
                        Fatal error: Call to undefined function mysqli_connect() in C:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 2
                        라고 error가 나오는데 비트나비를 새로 깔아야만 하는걸까요
                      • forest
                        완료
                      • 호영엄
                        안녕하세요, 좋은 자료 감사합니다. ㅎㅎ 연습삼아 다른 디렉토리에 웹 페이지를 하나 더 만들고 있는데 입력받은 데이터를 데이터베이스에 입력시킬 때, 기존의 웹 페이지에서 쓰던 Table을 사용하니 입력이 안되다가 새로운 테이블을 생성하고 연동시키니 자료가 정상적으로 입력 됐습니다. 혹시 하나의 테이블에는 한 서버만 접근이 가능한건가요? 아니면 설정을 통해 변경할 수 있는 건가요?
                      • 금만듀
                        혹시나 DB 비번 까먹으신분...

                        http://blog.naver.com......392

                        참조하시기 바랍니다.. 정리해서 올려놨습니다
                      • jayxwoo
                        실습1,2를 반복해서 천천히 풀어보니 이해가 좀 되네요.
                        오늘도 강의 잘 들었습니다!! ^^
                      • Youngil Jin
                        비번이 틀린데 111111로 해 놓고 왜 안되냐고 계속 찾았네요 ㅠㅠ
                        실습 2번에서 에러 나시는분들은 mysql접속 비번 확인을 ㅠㅠ
                        나 같은 ㅄ되지 않기를...ㅜㅜ
                      • mysql 실습3 동영상을 보다보면 article의 내용이 많아서 밑으로 훅 내려간 걸 보정하는 부분이 있습니다.
                        하지만 php 실습에서 생성한 1.txt 2.txt 3.txt파일의 내용은 전혀 그렇게 길게 작성되어 있지 않기 때문에
                        이 페이지에서의 실습3 동영상처럼 수정할 부분이 생기지 않습니다.
                        제가 무엇을 빼먹었던 건지는 잘 모르겠으나..
                        그냥 순서대로 동영상 보면서 따라하고 있던 저에게는 굉장한 혼돈이었습니다.
                        왜 저걸 해야하는 거지 난 저렇지 않은데 내가 잘못한 건가 이것저것 찾아보고 난리도 아니었습니다..
                        근데 그게 아니라 단순히 제가 가지고 있는 txt파일과 동영상에서의 txt파일이 다른 것 같더군요;;
                        만약 제가 공부 내용을 빼먹은 것이라면 제가 무슨 할 말이 있겠냐만은..
                        그런 것이 아니라면 부가설명란이나 내용이 좀 다를 수 있다는 걸 설명해 주실 순 없는 것인지요?
                      • jayxwoo
                        실습 2까지 완료했습니다^^
                        루트 비밀번호를 111111이 아닌 문자가 포함된 비밀번호로 하셨다면,,
                        비밀번호에 "" (큰따옴표) 해주시면 정상작동 하네요.
                        예) $conn = mysqli_connect ("localhost", "root", "1234abcd");

                        에러로그 파일이 너무 커서 열리지 않는 문제는 아직 해결을 못했네요,,, 에러로그 rotate하는 방법이나 초기화 하는 방법 아시는 분,,,,???

                        오늘도 강의 잘 들었습니다. 감사합니다!!
                      • jayxwoo
                        error_log 파일을 atom에디터에서 열려고 하면 에러가 뜨는데,,, 해결 방법,,, 아시는 분 혹시 계시나요,,?

                        에러 내용은 이렇습니다:
                        Uncaught RangeError: Invalid string length
                      • 헬리사우드
                        사운드 오브 코딩 보고했습니다.
                        ---------------------------------------------------------------------------------------
                        <?php
                        $conn = mysqli_connect("localhost", "**********", "*********");
                        mysqli_select_db($conn, "*******");
                        $result = mysqli_query($conn, "SELECT * FROM topic")
                        ?>
                        <article>
                        <?php
                        $sql = 'SELECT * FROM topic WHERE id'.$_GET['id'];
                        echo $sql;
                        $result = mysqli_query($conn, $sql);
                        $row = mysqli_fetch_assoc($result);
                        echo '<h2>'.$row['title'].'</h2>';
                        echo'<br>';
                        echo $row['description'];
                        ?>
                        </article>
                        ---------------------------------------------------------------------------------------
                        지금 이게..원래 id값이 있으면 그 id값에 해당하는 row를 불러오는건데
                        실제로 실행하면 id값이 없을때 id=1을 불러오고
                        id값이 존재하면 정보가 출력되지 않거든요..
                        저좀 도와주세요
                      • 김태윤
                        완료했어요
                      • boyboy
                        잘되다가 갑자기 locahost 접속에 문제가 생기는데 대체 왜 그런건가요? bitnami 자체의 문제인가요?
                      • 카라멜팝콘
                        저도 중간에 비슷한 상황에 부딪쳤던것 같은데...

                        아마 C:\Bitnami\wampstack-5.6.30-5
                        여기에 있는 manager-windows 실행 시키시면
                        (뭔지 아시죠? 수업 초반에 나왔었던거요. 서버 켜고 끄고 하는)
                        MySQL Database가 꺼져있을걸로 예상됩니다.

                        꺼져있는거 start 시키시고 다시 해보세요 ㅎㅎ
                        대화보기
                        버전 관리
                        egoing
                        현재 버전
                        선택 버전
                        graphittie 자세히 보기