@php 오류 고치기

HSGemini·2021년 6월 24일
0

php

목록 보기
2/4

오류난것

>Notice</b>:  Trying to access array offset on value of type null in <b>C:\xampp\htdocs\phpprac\update.php</b> on line

저장된 db에서 데이터 못불러오는 듯

php value="<?=$data['name']?>
쓰니까 오류로 나와서

php value="<?=isset($data['email'])?>
쓰니까 빈칸으로 나옴

<ul  style="width: 60%; height: auto; 
padding:5px; background-color:#DDE2E0;">
<?=$data['password']?>
</ul>

ul에서는 잘나옴

해결과정

php return $query['board'] ?? 'default value';
이렇게 하니까 x

$idx=$_GET['idx']; 

첨에 안나온다고 이걸

$idx=isset($_GET['idx']);

이렇게 바꾼게 잘못이었따..

몇시간 허우적허우적
이 문제는 그냥 에러 고친것도 아니고 내 잘못..


https://www.youtube.com/watch?v=PP6tTUIZRdA&t=147s

이 영상을 보면서
답글의 구현중

원하는것) 답글 페이지 똑같은 top (값) 주고 답글 할때마다 level도 1씩 증가

$query="select * from board order by top desc, level asc";
정렬을 이런식으로 해서

답글쓰기 했을떄
idx(글번호와) top(답글번호) 는 같게 하고 답글을 썼을떄는 level에 1이 생기도록

문제)
지금 상태는 답글쓰기 했을떄 사진과 같이 top이 idx와 똑같이 안나오고 0, level값도 0 나옴

아마도 데이터를 못받아오는 것 같다.

어디가 문제인지 한참 생각

-> 그러다가 error 값으로 undefined index 등이
나오는걸 깨달음
이 error가 어떨때 나오는지 체크하니
말그대로 변수값이 선언되지 않았을때 나왔다.


UPDATE board set top = idx

sql에 추가 했고

//list.php 에 답글일때(level==1) re작성 데이터에 직접 level에 1입력하면 정상 작동
<td><?php if($data['level']==1) echo 're: ';?><a href='view.php?idx=<?=$data['idx']?>'><?=$data['subject'];?></a></td>
//write.php에 두번째 사진에 value 값이 안뜨는 것 발견
<form action ="board_writepost.php" method="post">
<!-- hidden 수정과 글쓰기 구분하기 위해서 -->
<input type=hidden name="top" value="<?=$top?>">
<input type=hidden name="level" value="<?=$level?>">
//"board_writepost.php  top이 아닐때는 원래대로 정렬
        if(!$top){
            $query = "select max(top) from board where idx = '$idx'";
            $result = mysqli_query($query, $db);
            $data = mysqli_fetch_array($result);
            $top = $data[0]+1;
   
    }
//답글 이동
    <a href="board_write.php?idx=<?=$data['idx']?>&top=<?=$data['top']?>&level=<?=$data['level']+1?>" class="btn btn-primary">답글쓰기</a>

결국

$top = $_GET['top']; </br> 

$level = $_GET['level'];

이런식으로 주니 아래 통해서 데이터를 받아왔다.

<input type="hidden" name="top"  value="<?=$top?>">
<input type="hidden" name="level" value="<?=$level?>">

답글 버튼에서도 설정

 <a href="board_write.php?idx=<?=$data['idx']?>&top=<?=$data['top']?>&level=<?=$data['level']+1?>" class="btn btn-primary">답글쓰기</a>
				            <br><br>
                            ```
profile
공부중

0개의 댓글