웹 애플리케이션 만들기

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. 열정을가진
    Fatal error: Call to undefined function mysqli_connect() in C:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 2

    이건 어떻게 해결해요?
  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 시키시고 다시 해보세요 ㅎㅎ
                    대화보기
                    • 햇빛
                      감사합니다.. 깔끔하게 해결되었습니다..
                      복받으실거예요..^^
                      대화보기
                      • 문제좀 내지마
                        link태그의 href속성 뒤에 ?ver=1 붙이고 안될때 마다 1.0.1이런식으로 숫자를 올려보세요
                        <link rel="stylesheet" href="style.css?ver=1">이런식으로요.
                        대화보기
                        버전 관리
                        egoing
                        현재 버전
                        선택 버전
                        graphittie 자세히 보기