Peach's CODE
공부한 내용을 정리중입니다. 틀린 내용이 있을 수 있습니다 : )
코딩하는 딱복
[PHP] DB에 저장된 데이터 출력하기 본문
PHP에서는 mySQL에 저장되어 있는 레코드를 배열로 가져온다. -> fetch_array()
fetch_array()는 하나의 레코드만 가져오기 때문에 데이터 수가 많을 때는 for문을 돌려줘야한다.
먼저 sql문을 선언해주고 db에 연결해서 쿼리를 실행한 결과값을 $res 변수에 담아주었다.
출력되는 레코드가 여러개이므로 레코드 수를 $dataCount 변수에 담아준다.
당연히 for문은 데이터 갯수까지 돌려주면 되는 것! ㅎㅎ
fetch_array()함수는 아규먼트의 값에 따라 배열의 데이터형을 다르게 출력한다.
MYSQLI_NUM -> 인덱스를 숫자로 사용
MYSQLI_ASSOC -> 인덱스를 문자로 사용
MYSQLI_BOTH -> 인덱스를 숫자와 문자로 사용
$sql = "SELECT name, userId FROM lyj_myMember";
$res = $connect_db->query($sql);
$dataCount = $res->num_rows;
//MYSQLI_NUM
for($i = 0; $i < $dataCount; $i++){
$memberInfo = $res->fetch_array(MYSQLI_NUM);
echo "이름 : ".$memberInfo[0];
echo "<br>";
echo "아이디 : ".$memberInfo[1];
echo "<hr>";
}
인덱스는 0부터 시작하기 때문에 0부터 출력해주면 된다.
//MYSQLI_ASSOC
$sql = "SELECT name, userId FROM lyj_myMember";
$res = $connect_db->query($sql);
for($i = 0; $i < $dataCount; $i++){
$memberInfo = $res->fetch_array(MYSQLI_ASSOC);
echo "이름 : ".$memberInfo['name'];
echo "<br>";
echo "아이디 : ".$memberInfo['userId'];
echo "<hr>";
}
컬럼명으로 직접 부르는 형식인데 이 방법이 제일 편할 것 같다.
//MYSQLI_BOTH
$sql = "SELECT name, userId FROM lyj_myMember";
$res = $connect_db->query($sql);
for($i = 0; $i < $dataCount; $i++){
$memberInfo = $res->fetch_array(MYSQLI_BOTH);
echo "이름 : ".$memberInfo[0];
echo "<br>";
echo "아이디 : ".$memberInfo['userId'];
echo "<hr>";
}
둘 다 동시에 사용 가능!
게시판을 만들어보니,,, MYSQLI_ASSOC만 쓰게되었다,, ㅎㅎ
'Backend ⚙️ > PHP' 카테고리의 다른 글
[PHP] 줄바꿈 DB에 저장하기 (2) | 2024.01.04 |
---|---|
[PHP] 상속 (2) | 2024.01.03 |
[PHP] 유효성 검사 (2) | 2024.01.03 |
[PHP] 시간 관련 함수 (2) | 2024.01.02 |
[PHP] 문자열 관련 함수 (0) | 2024.01.02 |