본문 바로가기
Web/Mysql

[PHP&MYSQL] SQL select(PHP mysqli)

by merona99 2018. 8. 10.
반응형

<PHP mysqli를 이용해서 SQL select 문을 실행하는 방법>








1. SQL select를 mysqli_query를 이용해서 실행하는 방법






<create.php의 모습>

여기서 4개를 생성해 보았다.






<DB에 나타난 모습>

TOPIC테이블에 4개의 정보가 생성된 것이 보임.





<select.php를 만듬>

여기서는 sql쿼리를 사용해 생성된 데이터가 어떤식으로 생성되었는지를 볼 것임.

아 참고로 여기선 ($result->num_rows)가 아니고 ($result)임.

(잘못된 사진을 올려버렸따..ㅎㅎ)




<select.php의 서버모습>


아까 만든 topic속 4개의 정보의 모습들




<해당 부분만 보고싶을 때>

(바뀐부분) ($result) => ($result->num_rows)





<나온모습>









2. mysqli_fetch_array를 이용해서 mysql 서버가 응답한 결과를 배열로 변환하는 방법




<mysqli_fetch_ 사용>

mysqli_fetch_는 db에서 가져온 데이터를 php에서 활용하기 위한 api인데,

fetch는 '가져오다'라는 뜻이고 뒤에는 선호하는 데이터 타입을 설정할수 있는데

연관배열, 객체 등이 있는데 나는 익숙한 array를 사용했다.

$result를 array의 첫번째 인자로 줘야한다.


이것을 print_r로 어떻게 나오는지 봐보자.





<서버모습>

이렇게 배열 형태로 나온걸 볼 수 있다.

보면 topic의 첫번째 정보만 나오는걸 알 수 있다.

마지막의 'MySQL' 은 echo $row['title']; 때문에 첫 번째 정보의 title인 MySQL이 나온것.






3. 여러행을 가져오는 방법



<PHP코드>

해석하자면,

echo single row로 single row가 서버에 뜨고

아래 $sql에서 마지막쪽에 WHERE이 있는데 이건 SELECT할 부분을 제하는 거다.

여기서는 id가 19번째인 정보로 제한되어있다.

11,12번째 줄의 echo로 인해 19번째 titledescription이 화면상에 띄워질거다.


두번째 문단인 14번째 줄부터는

우선 multi row라는 단어가 화면상에 크게 나오고 여기서는 WHERE로 제한하지 않았기 때문에 모든행이 출력되는데 while문(반복문)안에 있는 내용이 계속 반복되고 더이상 나올 내용이 없으면 이는 NULL이 되어서 반복이 끝나게된다.

따라서 현재 내가 만들어놓은 정보 4개의 title, description이 출력될 것 이고, 반복문은 끝날 것 이다.


서버를 봐보자.





<서버>


multi row는 내생각 대로 나왔다....

근데 나는 single row아래에 MySQL과 MySQL is...이 한번더 나올 줄 알았는데

안나온다...?

코드에서 머가 잘못 된게 있을까..




// id = 19가 아니라 id = 12임 ㅎㅎ

강의랑 똑같이 적어서 다른부분을 캐치못했네 ㅎㅎㅎㅎㅎ

알려줘서 ㄳㄳ~






+화면 안겹치게 여러개 붙이는법 알아냈다 히히

예~







//잠이 안와서 밀린공부를 끄적여본다.

배가 고프다..





반응형

'Web > Mysql' 카테고리의 다른 글

[Mysql] 세가지 MYSQL API 비교  (0) 2018.11.02
[PHP&MYSQL] 보안  (0) 2018.08.10
[PHP&MYSQL] 연동&오류  (0) 2018.08.02
[PHP&MYSQL] 연동원리  (0) 2018.08.02
[mysql] C.U.R.D -핵심  (4) 2018.07.31

댓글