데이터베이스에서 가져온 데이터를 php에서 실행하고자 할 때, 
데이터베이스와 php는 서로 완전히 다른 기술이기 때문에 우리가 php라는 컴퓨터 언어를 통해서 그 데이터를 활용하기 위해서는 php 데이터 타입으로 전환하는 과정을 거쳐야 한다.

 

그 때 사용하는 api가 mysqli_fetch_... 들이다.

<!-- SELECT 문으로 하나의 행만 확인 -->
<?php
$conn = mysqli_connect('localhost','root','1111','mysqls');

$sql = "SELECT * FROM topic WHERE id=1";
$result = mysqli_query($conn, $sql);

$row = mysqli_fetch_array($result);
echo '<h1>'.$row['title'].'</h1>';
echo $row['description'];
?>

위 코드를 이해하기 위해 연관배열을 잠깐 언급하겠다.

 

 

현재 topic 테이블

$row = mysqli_fetch_array($result);
print_r($row);
echo $row[1]; 
echo $row['title']; 

mysqli_fetch_array($result) 는 result문이 가리키는 쿼리문의 결과를 하나씩 하나씩 배열로 리턴한다.

+) 더 이상 가져올 행이 없다면 NULL을 리턴한다.

 

따라서 $row 변수에는 php에 맞는 데이터 타입으로 전환된 배열이 들어가 있다.

 

실제 Array 배열을 출력

배열 = 키 값이 숫자, 연관배열 = 키 값이 문자

echo $row[1];  // MySQL =>데이터의 인덱스를 이용해서 데이터를 가져온다 : 배열
echo $row['title'];  // MySQL =>데이터의 컬럼의 이름을 이용해서 데이터를 가져온다 : 연관배열

 

 

우리는 해당 데이터의 배열의 인덱스를 하나하나 다 알 수 없기 때문에

연관배열 방법을 이용해서 원하는 데이터의 결과를 가져온 것이다.

echo '<h1>'.$row['title'].'</h1>';
echo $row['description'];

 

 

<!-- SELECT 문으로 모든 행 확인 -->
<?php
$conn = mysqli_connect('localhost','root','1111','mysqls');

$sql = "SELECT * FROM topic";
$result = mysqli_query($conn, $sql);

while($row = mysqli_fetch_array($result)){
  echo '<h1>'.$row['title'].'</h1>';
  echo $row['description'];
}
?>

while문을 활용해서 모든 행의 결과를 불러올 수 있다.

 

결과화면


+ PHP while문

<?php while(A)
B
C
?>

// A에 있는 코드는 무조건 실행. 그 결과가 true라면 B와 C를 순차적 실행. 더 이상 실행시킬 코드가 없으면 다시 A로 돌아감. 결과가 NULL(flase)라면 while문 종료

 

'WEB > PHP' 카테고리의 다른 글

보안  (0) 2021.01.31
PHP와 MySQL 연동  (0) 2021.01.31
PHP & DATABASE  (0) 2021.01.30
form과 GET, POST  (0) 2021.01.29
PHP 문법 기초  (0) 2021.01.28

<form>태그

:: 입력 양식 전체를 감싸는 태그

:: form은 컨트롤 요소로 구성된다.(컨트롤 요소: text, button, radio 등)

 

▷ name : form의 이름. 서버로 보내질 때 이름의 값으로 데이터 전송

▷ action : form이 전송되는 서버 url 또는 html 링크

 method : 전송 방법 설정. get은 default, post는 데이터를 url에 공개하지 않고 숨겨서 전송하는 방법

 autocomplete : 자동 완성. on으로 하면 form 전체에 자동 완성 허용

<form name="profile" action="/action_page.php" method="get" 
      autocomplete="on">
  <input type="text" name="id">
</form>

 

 

form.html

<form 태그는 사용자 입력정보를 URL 파라미터로 만들어 내는 기계>

:: submit이 속해있는 form 태그의 action 속성이 가리키는 URL로 웹 브라우저는 그 URL 뒤에 내용을 붙여 전해준다.

 

form.html에서 title과 contents에 데이터를 넣어서 form.php에 보내고 있다.

+ form 태그 내부에서 method를 지정하지 않으면 기본값은 GET 이다.

 

 

form.php

php는 data 디렉토리에 title 파일을 생성한다.

+ file_put_contents(디렉토리,내용) : 지정한 디렉토리에 입력한 내용이 담긴 파일을 만들어주는 함수이다.

+ 입력 내용을 $_GET[' '] 방식으로 받는 것도 주목

 

data 디렉토리 내부 구성
 GET 방식_내용 작성
form.php로 보내진 url

url을 확인해보면 title과 contetns에 어떤 내용이 담겼는지 알 수가 있다.

 

해당 파일 추가

파일 추가 기능이 잘 이루어졌다는 것도 확인할 수 있다.

 


이렇게 GET방식(url 파라미터를 통해서 서버 쪽에 데이터를 전송하는 것)은 북마크에서 사용하기 적합한 방식이다.

즉, 어떤 콘텐츠를 다른 사람에게 공유할 때 적합한 방식이다.

 

반대로 내용을 작성하여 url을 통해 데이터를 서버로 전송하는 방식은 이 주소를 공유했을 때 데이터가 추가돼버리는 등 여러 문제가 생긴다. (삭제, 수정의 경우도 마찬가지)

 

따라서 form에 데이터를 전송하는 하는 방식을 POST로 설정하여 url을 통하지 않고 해당 데이터를 은밀하게 서버로 전송해야 한다.

수정한 form.html
수정한 form.php

+ 입력 내용 $_POST[' '] 방식

 

수정한 form.html 페이지_내용 작성
form.php로 보내진 url

URL 부분이 깔끔하다!

 

form.php 확인

form.php의 네트워크 부분을 확인해보니

해당 내용이 우리가 볼 수 없는 방식으로 은밀히 전달된 것을 확인할 수 있다.

 

해당 파일 추가

 

'WEB > PHP' 카테고리의 다른 글

PHP와 MySQL_연동 후 데이터 출력  (0) 2021.01.31
PHP와 MySQL 연동  (0) 2021.01.31
PHP & DATABASE  (0) 2021.01.30
PHP 문법 기초  (0) 2021.01.28
PHP의 이해  (0) 2021.01.28

php의 기본이 되는 것들을 아주 간단하게 적어놓았다. 

 

Variable

:: 변수는 $로 표시

:: . 으로 연결

<?php  
$name="kkami"  
"hello".$name."good morning";
?>

 

Parameter

:: url의 입력값 전달은 ?

ex) http://127.0.0.1/parameter.php?name=kkami&address=서울

 

:: 전달받은 것을 화면에 출력하고자 할 땐 $_GET['변수명']로 출력

 <html>
 	<body>
    	안녕하세요. <?php echo $_GET['address'];?>에 사시는 <?php echo $_GET['name'];?>님
  	</body>
</html>

 

줄바꿈

:: 1. 문자열 안에 <br>태그 삽입

:: 2. nl2br( ) 함수 사용 (new line to br)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>newline</h1>
    <?php
    $str = "발 끝에 닿을 듯한 어둠에
            그림자마저 사라져
            등뒤로 도망가는 너란 해 Bye
            궤도를 벗어난 행성
            이별에 우린 부딪히려 해
            난 차라리 모든 걸 잊어버린
            너를 원해
            흐르는 별들 속에 헤매던 그때
            이뤄지지 않을 꿈안에 갇혀 Fly away
            빛을 건너 그 날의 널 볼 수 있다면
            지금 너와 난 영원을 속삭였을까
            Let me catch the light";
    echo $str;
    ?>
  </body>
</html>

가사 : 「하현상-3108」

이렇게 문자열을 입력했을 때 결과화면은 아래와 같다.

 

가사가 str변수 안에 입력한 대로 줄바꿈이 되기를 원한다.

 

<br>태그 이용

    $str = "발 끝에 닿을 듯한 어둠에<br>
            그림자마저 사라져<br>
            등뒤로 도망가는 너란 해 Bye<br>
            궤도를 벗어난 행성<br>
            이별에 우린 부딪히려 해<br>
            ....
            let me catch the light";

이런식으로 문자열 사이에 줄바꿈을 원하는 곳에 <br>태그를 입력하면 된다.

 

nl2br( ) 함수

     <?php
     echo nl2br($str);
     ?>

하지만 nl2br( ) 함수를 이용한다면? 

한꺼번에 개발자가 원하는대로 코드의 줄바꿈이 가능해진다.

 

'WEB > PHP' 카테고리의 다른 글

PHP와 MySQL_연동 후 데이터 출력  (0) 2021.01.31
PHP와 MySQL 연동  (0) 2021.01.31
PHP & DATABASE  (0) 2021.01.30
form과 GET, POST  (0) 2021.01.29
PHP의 이해  (0) 2021.01.28

PHP¹

:: PHP는 웹프로그래밍을 위한 높은 생산성을 제공하는 언어이다.(웹을 위해서 만들어졌고, 지금도 웹을 위해서 발전하고 있는 웹을 위한 언어)

:: 서버 측에서 실행되는 프로그래밍 언어로 HTML을 프로그래밍적으로 생성해주고, 데이터베이스와 상호작용 하면서 데이터를 저장하고, 표현한다.

+) 특히 서버에 직접 설치해서 운영할 수 있는 설치형 웹에플리케이션(제로보드, 텍스트큐브, 워드프래스, PHPBB등)의 과반이 PHP로 만들어졌다.

 

PHP 이용 시 웹 페이지를 자동으로 생성할 수 있다.

사이트의 운영자가 컨텐츠의 내용을 작성해서 PHP에게 넘기면 PHP는 사용자 대신에 컨텐츠를 html으로 만들어준다.

 

PHP의 원리

웹 브라우저 상에서 html 문서를 요청하면 웹 서버는 자신이 가지고 있던 html 파일을 그대로 보여준다.(정적)

그러나 php 문서를 요청하면 웹 서버는 이 요청을 php 에 위임하고 php가 html 파일을 생성한 후, 웹 서버가 이를 보여준다.(동적)

 

 

 

 

 

 

(¹출처: opentutorials.org/index.php/course/62)

'WEB > PHP' 카테고리의 다른 글

PHP와 MySQL_연동 후 데이터 출력  (0) 2021.01.31
PHP와 MySQL 연동  (0) 2021.01.31
PHP & DATABASE  (0) 2021.01.30
form과 GET, POST  (0) 2021.01.29
PHP 문법 기초  (0) 2021.01.28

+ Recent posts