생활코딩

Coding Everybody

코스 전체목록

닫기

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. 햇빛
    감사합니다.. 깔끔하게 해결되었습니다..
    복받으실거예요..^^
    대화보기
    • 문제좀 내지마
      link태그의 href속성 뒤에 ?ver=1 붙이고 안될때 마다 1.0.1이런식으로 숫자를 올려보세요
      <link rel="stylesheet" href="style.css?ver=1">이런식으로요.
      대화보기
      • 햇빛
        style.css 가 적용이 잘안되네요...ㅠㅠ
      • technoheo48@gmail.com
        Warning: mysqli_connect(): MySQL server has gone away in C:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 2

        Warning: mysqli_connect(): Error while reading greeting packet. PID=10784 in C:\Bitnami\wampstack-5.6.31-0\apache2\htdocs\index.php on line 2

        Warning: mysqli_connect(): (HY000/2006): MySQL server has gone away 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

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


        계속 이런에러가 화면에 출력되는데...도와주세요......ㅜㅜ.ㅜ.ㅜㅜ
      • svastica
        완료!!!
      • 김청빈
        포맷을 해서 그런데 포맷하기 전에 외장하드에 bitnami 폴더를 통째로 복사해뒀습니다. 그래서 여태 만들어둔 실습파일들 옮기려고하는데 htdocs 는 그냥 복붙하면 되는데 mysql은 어떻게 해야할지 모르겠습니다... 해결방법 있습니까?
      • 문명
        같은 증상인데, 해결하셨나요??
        대화보기
        • 이재준
          듣던 중 프로그래밍을 하는데 about javascript를 누르면 데이터베이스에 있는게 안뜨고 왜 javascript란 이런식으로 뜰까요..??
        • GoldPenguin
          완료했습니다.
        • 가영
          완료!
        • Baekkyu Han
          MySQL 실습
          실습1~5
        • 박예지
          완료!!!
        • shonny
          감사합니다.!
        • ysmin
          맥 사용하는데요. 사파리가 localhost 서버로 연결할 수 없다고 자꾸 오류가 떠서요. 어떻게 해결해야 할까요? 구글링해도 어떻게 해야하는지가 안나오네요!
        • 완료 ^^
        • FirstSubject
          질문 있습니다.

          에러로그를 atom으로 실행시켰는데 큰파일이라며 경고가 떠서 무시하고 실행을 시켰습니다.

          한 20초?정도후 실행이 되더니 에러가 백이십만줄 정도 걸려있더군요;;;

          에러로그파일을 삭제하면 안될것 같아 노트북이 허락하는 범위내(약 30만줄정도)에서 일일이 에러로그를

          지워줬습니다.

          1. 에러로그에 백이십만줄정도 많은 에러가 잡힌 이유(초당 몇줄씩 1~2시간정도)

          2. 에러로그에 백만줄이상 에러가잡혀 cpu에 많은 부하가 걸릴때 에러로그를 초기화 하는 방법

          3. 에러로그 파일 자체를 삭제해도 되는지

          4. 된다면 자동으로 생성되는지

          또 이런일이 생겨 나중에 에러가 천만줄이상 잡히면 노트북 터지는거 아닌가 걱정됩니다.
        • 이민재
          답변 감사합니다. 그런데 port번호를 어떻게 변경하는지 알 수 있을까요?? 구글링을 해봤는데 원격조정이나 apache tomcat? 관련해서 포트설정하는것만 나와서요ㅠㅠ 그리고 php코드는 index.php에다가 넣어야하는건가요??
          대화보기
          • Myeongjin Ko
            완료
          • Seock-In Kim
            강의 목록 중 여기서 가장 오래 머물다 가네요..
            또 직접 코드 입력한다고 process.php 작성하다가 ' 대신 ₩로 value 감싸 놓구 뭐가 잘못 된지 몰라 한 30분 씨름했네요 ㅋㅋ
            저처럼 에러코드 뜨지도 않는 실수하시는 분 없으시길 ㅎㅎ;
          • 인재진
            수강완료
          • 김범진
            이제어려워지네요 완료
          • Seock-In Kim
            index.php 코드 중 궁금한게 하나 있는데요~
            list 출력할 때까지 사용하셨던 변수 $result와 $row를 아래 article 부분에서 다시 사용하셨던데, 그렇다면 이름이 같은 변수가 다시 선언되는 시점에서 이전 변수는 자동적으로 폐기되는건지, 그리고 한 문서에서 이름을 다시 써도 별 문제가 없는지 궁금합니다~~
          • Seock-In Kim
            오 동명이인이시네요~
            제 이름 흔치 않던데 여기서 선행하시는 분 뵈니 왠지 반갑네요 ^^
            대화보기
            • tjdals
              어려운 만큼 보람 차네요.
            • qud4186
              오늘 수업은 좀 힘들었던것 같지만 그만큼 보람있네요.
            • 이원석
              8.13 잘봤어요 ^^
            • 김코코
              감사합니다. 알려주신대로 해봐야겠어요!
              대화보기
              • 김우진
                Access denied for user 'root'@'localhost' 이 에러 나시는 분들 연동 형식을 좀 바꿔서 해보세요. port번호 다르게 설정한 경우 이런 에러 발생하는데 저 같은 경우 3307로 설정해서 포트 선언해주고 연동했더니 정상적으로 되네요.
                <?php
                $host = 'localhost';
                $user = 'root';
                $pw = '비밀번호';
                $dbName = 'opentutorials';
                $port = '3307';
                $mysqli = new mysqli($host, $user, $pw, $dbName, $port);
                $result = mysqli_query($mysqli, "SELECT * FROM topic");
                ?>
              • 김우진
                저도 같은 증상이어서 애먹었는데요 href="http://localhost:81/style.css?ver=1"
                index.php파일에 css링크에 이런식으로 버전을 주면 변경할 때 마다 잘 적용이 되더라구요
                맞는 방법인지는 모르겠지만..
                대화보기
                • 김코코
                  css를 수정하고나서 웹페이지에서 f5를 눌러도
                  갱신이 바로 안돼요. 해결할 방법이 없을까요?
                • 이민재
                  자꾸 에러가 나서 위에 코드들을 복붙했는데도 자꾸 에러가 생겼다고 떠요.

                  Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) 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

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

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

                  저기있는 parameter이 뭘 말하는지 이해가 안되서 뭐가 잘못되었는지를 못찾겠어요ㅠㅠ 도와주세요ㅠㅠㅠㅠ
                • 오상민
                  임베디드쪽 하는 사람인데, 웹프로그래밍 재미있네요! ㅎㅎ
                • Yoo Moon Il
                  동일한 번호도 있고 아닌 번호도 있습니다. 통신 규약으로 고정되어 있는, 따라서 마음대로 설정하면 안되는 (하면 욕먹는) 번호(20,21,22,80번같이)도 있고, 특정 프로그램(예를 들면 mysql)이 일반적으로 사용하는 포트번호(3306, 8080)도 있고, 각자의 컴터 상황에 따라서 마음대로 사용해도 되는 포트 번호도 있는것으로 알고 있습니다. 웰노운 포트, 레지스터드 포트, 다이나믹 포트로 분류되어 있습니다. 구글에서 포트번호 검색하시면 (찾는법과 함께)자세히 설명이 되어있지만 대충 보시면 될것 같고요 ㅎㅎ 포트 번호는 대부분 원하면 변경할수도 있고 특정 프로그램을 사용할때는 포트번호를 알려주는 기능들이 다 있어서 저는 특히 고민하지는 않고 사용하고 있습니다.
                  대화보기
                  • 오상민
                    저도 그런현상이 있었는데 그냥 다른 css 파일을 참조하게하여 해결했습니다. 뭔가 다른 이슈같은데 원인은 모르겠어요. 업데이트가 잘 안되는거같더라구요.
                    대화보기
                    • kong il
                      크.. 정말 감사합니다. 처음엔 이해가 안됫는데 계속 보다보니 그러려니하고 이해가되네요. a태그가 html 언어고 $변수가 php언어이기때문에 나누고 .으로 이어준다고 이해했는데 제가 이해한게 맞겠죠?
                      대화보기
                      • 김코코
                        감사합니다 덕분에 오류를 수정해서 잘 해결했어요ㅎㅎㅎ!
                        대화보기
                        • 김코코
                          포트번호는 사람들 모두 동일한가요?? 포트번호는 어떻게 찾아야하나요..!
                          대화보기
                          • 설기247
                            style.css에서 분명 nav ol에 패딩0 했는데 인덱스php 페이지에서는 결과가 바뀌지가 않네요
                          • 한종운
                            [MySQL 실습]
                            실습1
                            웹브라우져 === 웹서버 === PHP === MySQL
                            PHP의 중계자 역할 = Middle ware
                            MySQL Dbase를 이용 코딩하면, 오류상황이 보이지 않는다.
                            ㄴ error.log 파일을 열어넣고 코딩 필요
                            MySQLi
                            서버접속-DB선택-조회-출력

                            실습2 (중요)(중요)(중요)(중요)(중요)
                            서버접속-DB선택-조회-출력
                            연관배열(associated array)
                            array의 각 컬럼에 이름을 부여. id, title...
                            mysqli_fetch_assoc

                            php의 NULL은 false
                            중복을 피하자!

                            실습3
                            웹 페이지 L.out 조정, 정리하고 시작하기

                            article

                            실습4
                            웹 페이지에서 사용자 입력 정보를 DB로 전송, 저장하기
                            UI text field 만들기
                            text area 만들기
                            <p></p> 태그 pharagraph
                          • 코딩학습생
                            잘 봤습니다.
                          • Scia
                            mysql 의 장벽이 너무 높지만 드디어 넘었어요!!!

                            30분짜리 영상도 만드시고 이건 무리수 뒀습니다.... 라고 할 만큼 어렵고 오래걸렸네요.
                            도저히 하루만에 들을 양이 아니라 조금씩 들으면서
                            한 영상 끝날때마다 자신을 칭찬하며, 수고했어
                            하고 잤어요.ㅎㅎㅎ
                          • Scia
                            process.php 파일을 작업할 때,
                            우리가 생각하는 첫 페이지 index.php 로 오게 만들기 위해
                            header을 씁니다.
                            여.기.서.
                            Location: 따옴표가 바로 붙어야지 안그러면 index.php로 돌아가지 않습니다.
                          • J Gong
                            Yoo Moon ll님~ 답변 감사드립니다! ^^
                            알려주신대로 확인해 보니 포트가 80입니다. ;; 좀 놀랬습니다
                            80으로 했을 때와 3307로 했을 때 둘 다 작동합니다~ 3307이 어떻게 나온 건지.. 모르겠어요 ;;
                            대화보기
                            • 녀자녀자한
                              저도 같은 에러가 나왔는데요,
                              Yoo Moon Il 님 댓글 참조해서 디비 연결부분 수정했더니 해결됐습니다!!
                              IP, DB이름, 포트번호 넣었더니 잘 나오네요!
                              대화보기
                              • Yoo Moon Il
                                저도 잘 모르는 데요.. 자동으로 설정되는 것 같습니다. 기본이 3306인데 혹시 컴터가 3306을 사용하고 있으면 자동으로 3307로 설정하는 것은 아닐까? 추측합니다. mysql 포트번호는 C:\Bitnami\wampstack-5.6.30-5에 들어가서 manager-windows.exe 작동(더블클릭)시켜서 위에 메뉴바에서 manage servers누르고 mysql클릭 선택한후 우측 configure버튼을 누르면 확인 가능합니다.
                                대화보기
                                • 장진호
                                  실습2에서 index.php 에 <?php?> 로 코드 짜서 크롬으로 그 결과를 보려고 하는데

                                  Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) 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

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

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

                                  이런 오류가 뜨네요 ㅠㅠ 도와주세요~ index.php 에 들어갈 코드는 분명히 똑같이 따라했어요 ㅠㅠ
                                • 임영선
                                  헉..헉.. 내용이 많네요; 시간과 거리를 넘어들기위한 네트워크를 사용하는데에는 많은 노력이 필요하네요!
                                  이번에도 강의 잘 들었습니다!
                                  "와 '의 마술같은 문법까지는 잘 모르겠지만 잘 실행이 되는 것을 확인하니 기분이 좋네요~
                                • 별밤
                                  와 감사합니다! 암호를 "" 따옴표로 묶어주니까 바로 해결되었어요. 속이 후련합니다.^^
                                  대화보기
                                  • 임영선
                                    솔직히 저도 잘 모르겠습니다만 제가 이해해본대로 설명해보겠습니다.
                                    맨처음에 '가 있으니 '을 기준으로 보면(띄어쓰기를 3번해도 1번한 것처럼 댓글이 올라가네요 !로 구분하겠습니다.)
                                    ! '<li><a href="http://localhost/index.php?id=' ! .$row['id']. ! '">' ! .$row['title']. ! '</a></li>' ! . ! "\n"
                                    가 됨니다. 이때 .(점)은 php에서 글자를 이어주는 역할을 해주므로

                                    <li><a href="http://localhost/index.php?id=$row[id]">$row[title]</a></li>"\n"
                                    가 되고 이것은 이전에 공부했던 내용과 같이 되는것이죠.

                                    중간에 변수인 $row['id']가 있어서 이렇게 어려워진 것 같습니다. '과 .만 지우고보면 이전에 배운 함수랑 똑같은데말이죠;;

                                    그리고 "\n"은 '"\n"'으로 작은 따옴표로 두르지 않아도 잘 작동하네요. 이건 잘 모르겠습니다.
                                    대화보기
                                    • 임영선
                                      음.. 패스워드가 숫자만 있는 (예를들어서) 1234였다면 그대로 넣어도 되는 것 같은데 저는 문자와 숫자를 섞은 패스워드를 사용했었을때 비슷한 에러가 있었어요.
                                      패스워드를 ""로 묶어주니까 패스워드 에러가 더이상 안나더라구요. 한번 시도해보세요.
                                      대화보기
                                      버전 관리
                                      egoing
                                      현재 버전
                                      선택 버전
                                      graphittie 자세히 보기