WEB3 - PHP & MySQL

활용 - 글읽기

수업소개

PHP의 mysqli API를 이용해서 MySQL Server로부터 데이터를 가져와서 글읽기 기능을 구현하는 방법을 소개합니다. 

 

 

강의 1

 

소스 코드 변경사항

 

강의 2

소스코드 변경사항  

댓글

댓글 본문
  1. jeisyoon
    2021.04.16 글읽기 - OK
    PHP & MySQL과 연동하면서 페이징 전환 속도가 느린점을 해결하지 못함.
  2. hanel_
    21.2.28 감사합니다
  3. 그렇죠~ 오류나면 세미콜론부터 확인한답니다 전~
    대화보기
    • 사양 안좋은거 아닙니다. 그거 설정을 바꾸셔야 하는겁니다. 해당 설정이 되어있지 않다면 모든 코드 한줄한줄 비트나미가 디버깅 해서 그렇습니다
      대화보기
      • kkn1125
        궁금한게 있는데요.. 아무리 찾아봐도 어떻게 개선해야할지 몰라 질문드립니다..

        하나하나 따라하면서 복습중인데 반복문으로 li태그 리스트를 불러오고서 링크에 id값을 걸어 클릭하여 이동하면
        사이트 페이징 속도가 좀 느린감이 있습니다..

        영상에서는 시원시원하게 바뀌는데 반면 제 컴퓨터에서는 느리게 바뀌고, 개발자도구로 확인해보니
        // 참고로 저는 파이어 폭스를 쓰고있습니다. 크롬환경에서도 느려서 질문드립니다..

        네트워크 탭에서 해당 페이지의 파일부분에 거북이 모양이 생기고, DOMContentLoaded와 load가 2.09 ~ 2.10초 걸리며, 타이밍부분에서는 기다리기가 2.07초가 소요됩니다.

        create링크 이동시에는 20ms도 안걸리는데 왜 mysql연결된 리스트의 이동은 2069ms가 걸리는지 의문입니다...

        1. php환경설정을 변경하여도 같습니다..
        2. 아파치의 캐쉬설정을 하여도 같습니다...
        3. bitnami를 재설치하여도 같습니다..

        무슨 문제일까요 ㅠㅠ... 컴퓨터 사양차이라면 이해가 되지만 제 컴퓨터 사양이 안좋은 편은 아닌것 같아서요...
      • kkn1125
        21.01.09.토 완료~!
      • クレヨンしんちゃん
        ㅇㄹ
      • jy2714hn
        200718 완료
      • jaehyunlee
        06.14 고3 완료
      • 바다의왕자
        완료
      • 45678
        이번 수업은 폭풍 같달까요,, 촤르륵 몰아치 ㅎㅎ 정신없는 1인 ㅠㅠ 복습을 특히 꼼꼼하게 해야겠네용
      • 여러분... 혹시 while($row = mysqli_fetch_array($result)) 요거 하실 때 첫번째 행이 안 뜨는 문제가 생긴다면
        while 전에 row의 변수값을 지정하지 않았는지 확인하세요...
        while에서 조건이 실행되면서 충돌이 일어나는 것 같습니다...
        복사해서 붙여넣은 것을 눈치채지 못해서 이것 때문에 한시간은 헤멨네요 여러분은 이런 실수를 하지 않으시길.......
      • 냉탕에거북이
        감사합니닷-!
      • 허공
        190508 감사합니다.
      • incursio
        감사합니다
      • 신광섭
        콤마 하나 때문에 30분을 허비해 버렸네요.
        하하 이게 코딩의 묘미 인 것이겠죠?
        즐겁게 따라가고 있습니다.
        중간에 뭔가 틀렸을때 찾는 재미가 또 있네요.
        :D
      • ㅈㅈㅎ
        공백은 한 칸 띄어야 공백이들어가는거고 아무것도 안 들어있다고생각하시면 됩니다. 그리고 선언해주는 것은 아니지만,, 데이터타입을 알아서 정해주는 이런 언어에서는 선언이라고 생각해도 나쁘지는 않을 것 같네요
        대화보기
        • ozma00@nate.com
          엇 !! 답변 주셔서 감사합니다!! 항상 이고잉님께 감사한 마음으로 열공 하고 있습니다!!

          아 그리구요 이건 코딩야학 깃허브 질문란에서 제 질문에 답변주신 고마운분 에게

          질문 했던건데요 여기서도 질문 남겨봅니다!

          $ a = ' ' ; 이게 데이터 타입이 문자열인 공백이란 값이 들어있다는 건가요

          아님 그냥 $a=null 이란 뜻 인가요? 아님 $a 의 데이터 타입은 문자열이라고 선언 해주는 건가요?
          대화보기
          • egoing
            그렇게 해야 $list 변수에 순차적으로 값이 더해지거든요.
            대화보기
            • ozma00@nate.com
              궁금한게 있습니다!!
              $conn = mysqli_connect(
              'localhost',
              'root',
              '111111',
              'opentutorials');
              $sql = "SELECT * FROM topic";
              $result = mysqli_query($conn, $sql);
              $list = '';
              while($row = mysqli_fetch_array($result)) {
              $list = $list."<li><a href=\"index.php?id={$row['id']}\">{$row['title']}</a></li>";
              }
              이 코드에서
              $list = '';
              while($row = mysqli_fetch_array($result)) {
              $list = $list."<li><a href=\"index.php?id={$row['id']}\">{$row['title']}</a></li>";
              }
              이부분에 대해서 이해가 안가서 그러는데요
              왜 변수 값에 $list=' '; 이렇게 하는건지 궁금합니다 특별한 기능이 있는건가요?

              그리고 $list=' ' ; 이걸 빼고

              그냥 while($row = mysqli_fetch_array($result)) {
              $list ="<li><a href=\"index.php?id={$row['id']}\">{$row['title']}</a></li>";
              }

              이렇게 해보니깐 출력이 한 줄만 나오던데 왜 그러는건지 궁금합니다!

              $list =$list. <li>~~~</li> 왜 이렇게 $list=' '; 를 결합 해야지 데이터들이 다 출력이 되는거죠??
            • 윤민
              뒤에 ';' 붙였습니다
            • 윤민
              $sql = "SELECT * FROM topic WHERE id = {$_GET['id']}"
              아니 왜 이부분이 오류가 나는거죠? 몇시간째 답답하네요..;;
            • egoing
              $a = 1;
              print("aa $a aa") // 됩니다
              print("aa$aaa") // 안됩니다
              print("aa{$a}aa") // 됩니다
              즉 가급적 쓰시는게 명시적이고 좋습니다.
              대화보기
              • 양항준
                {$row['title']} 에서 중괄호는 어떡 역할인가요? 그리고 반드시 사용해야 하나요?
              • 프로그래멍
                강의 동영상에선 페이지 로드가 순간적으로 되는것같은데 제 실행화면에서 링크버튼을 누르면
                URL 상에서 http://localhost......php => http://localhost......php?id=3 이렇게 바뀌는게
                길면 2초가량 시간이 걸립니다 무슨차이때문에 그럴까요? 왜이리 느릴까요?
              • 박한석
                phpmyadmin에 있는 데이터를 가져와서
                php만 코딩 되어 있는 파일에서 echo로 출력하면
                한글이 깨지지 않습니다 그런데
                html태그 안에
                $row1=mysqli_fetch_array($result1); 이렇게 받은 값을
                $description="<a id=\"timeline_posttext\">".$row1["description"]."</a>";변수에 담아서

                <ul id="timeline_posttop">
                <li>
                <img src="img/post_profile_03.gif" alt="#" id="post_profile_photo"/>
                </li>
                <li>
                <?=$nametitle?>
                <?=$name?>
                </li>
                <li id="post_edt">
                <a href="#">
                <img src="img/post_profile_06_06.gif" alt="#" id="post_profile_edt" />
                </a>
                </li>

                이렇게 출력하려고 하면 깨집니다. 이유가 뭘까요 ㅠㅠ

                --
                html에 있는 meta charset utf-8을 지우니까 되긴 하는데...
                이제는 다른 html 한글이 깨지네요 ㅠㅠㅠㅠㅠ
              • Jinho Hyeon
                안녕하세요, 세상에 바보같은 질문은 없고. 궁금한건 물어보고 해결하는게 좋죠!
                문자열 안에 php 문법으로 반환되는 값을 넣고 싶을 때에 {$row['title']} 처럼 {}를 넣어서 사용합니다.

                $row['title']이 1 일 때
                <a href="index.php?id={$row['title']}">링크!</a> 를 하면
                <a href="index.php?id=1">링크!</a> 로 변환됩니다.

                반면에, <a href="$row['title']">링크!</a>를 할 경우
                <a href="$row['title']">링크!</a>로 그냥 HTML에 작성되는 걸 보실 수 있을 겁니다.

                궁금하시면 문자열 보간이나 string interpolation, template string 등 으로 검색하시면 찾아보실 수 있을 거에요.
                대화보기
                • 바보같은 답변일 수도 있겠지만 "" 안에서 사용할때는 그냥 다 중괄호 해서 사용한다고 생각하시면 이해하기 쉽고 실행도 다 되는것 같네요.
                  대화보기
                  • 제갈량
                    감사합니다 ^^
                  • PHP_MySqL
                    바보 같은 질문일 수도 있을거 같은데
                    어떤 상황일 때 $row['title'] 를 쓰고, 어떨 때 괄호를 붙여서 {$row['title']} 를 사용하는지 알 수 있을까요? ㅜㅜ
                  버전 관리
                  egoing
                  현재 버전
                  선택 버전
                  graphittie 자세히 보기