gg맨
254
2019-01-14 17:30:15
1
285

php if문 질문 드립니다.


두개의 변수를 비교하는 if문을 사용하는데 이상하게 안되네요 ㅠ 

테이블 에서 데이터를 끌어와서 비교하는 함수입니다. 


아래 소스중  $notice_row[r_type2] 에는 "사과" 가 들어 있고 

$type_row[r_type2]는 테이블에서 데이터를 찾아서 가져 오는데 "바나나", "사과" 를 가져온다고 했을때 

사과일때 selected 라는 문자를 출력하고 싶은데 안나오네요 소스 잘못된 부분이 있을까요?



<select name="r_type2" id="type">
                <?
                  for($i=0; $i<0+$type_total; $i++) { // start에서 scale까지만
                  mysql_data_seek($type_result,$i);
                  $type_row=mysql_fetch_array($type_result);
                ?>
                <option value="<?=$type_row[r_type2]?>"<?if ($notice_row[r_type2]  == $type_row[r_type2] ){echo "selected";}  ?>><?=$type_row[r_type2]?></option>
                  <?}?>
                </select>


0
0
  • 답변 1

  • 두한백
    163
    2019-01-14 18:40:53

    mysql_fetch_array 함수는 일반적으로 while문으로 호출하거나 그 안에서 2차원 배열을 복사한 후 쓰는 경우가 많은데 헷갈리시면 mysql_fetch_array 함수와 while문 조합으로 배열을 하나 저장한 후에 비교하는게 편할 것 같습니다.

    예제 코드입니다.

    $arr = [];

    while($row = mysql_fetch_array($type_result)){

      $arr[] = $row;

    }


    이렇게 쓰면 $arr 변수가 2차원 배열 모양으로 복사가 됩니다.

    예를 들어 글쓰신 반복문 기준이라면

    $arr[0]['r_type2'] , $arr[1]['r_type2']..... $arr[$i]['r_type2'] 이렇게 나오는거죠


    그리고 이거 쓰기 불편하다 싶으시면 저 $type_row나 $notice_row가 어떻게 찍히는지 다시 확인해보세요.

    print_r($변수) 나 var_dump($변수) 로 정확하게 나오는지 먼저 봐야될것 같습니다.



    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.