while 문 질문 입니다.

while 문 질문 입니다.

QA

while 문 질문 입니다.

본문

db 에 col_1 ~ col_15 까지 컬럼이 있다고 하면

값이 있는것만 뿌려줄려고 할 때 while 문 사용하는걸로 아는데 잘 안되세요..

 

이런식으로 인덱스 값은 없고 고정값으로 되어 있습니다.

 

662111144_1618976269.6341.png

 


$sql = " select * from `order_list_naver` ";
$result = sql_fetch($sql);
 
<?php while ($i=1; $row=sql_fetch_array($result); $i++) { ?>
        <tr>
            <th>항목명 <?php echo $i ?></th>
            <td><input type="text" name="item_<?php echo $i ?>" value="<?php echo $row['item_'.$i] ?>" class="frm_input"></td>
            <th>값 <?php echo $i ?></th>
            <td><input type="text" name="item_value_<?php echo $i ?>" value="<?php echo $row['item_value_'.$i] ?>" class="frm_input"></td>
        </tr>
        <? } ?>

 

 

이 질문에 댓글 쓰기 :

답변 4

원하시는건 1row 에 있는  col1~col15의 값이고

 

작성하신 문장은

존재하는 모든 Row를 추출하는 로직입니다.

 

1row별로 colX들을 추출하는작업을하면

 


$sql = " select * from `order_list_naver` ";
$result = sql_fetch($sql);
 
<?php
//   while ($i=1; $row=sql_fetch_array($result); $i++) {  //for문의 문법입니다.
     while ($row=sql_fetch_array($result)) {  // while문이 문법에 맞게 변경
              //이 구문은 모든 Row를 가져오기 위해선 필요하고
   
 
      //여기서 컬럼의 내용을 판단 해야 합니다.
      // 매번 컬럼의 값을 초기화
      $i = 1;
      foreach ($row as $key => $value) {  
            // 각 row의 내용을 컬럼별로 분리합니다.
?>
        <tr>
            <th>항목명 <?php echo $i ?></th>
            <td><input type="text" name="item_<?php echo $i ?>" value="<?php echo $value; ?>" class="frm_input"></td>
            <th>값 <?php echo $i ?></th>
            <td>
                <?php  <input type="text" name="item_value_<?php echo $i ?>" value="<?php echo $value?>" class="frm_input"></td>
        </tr>
        <?php
             $i++;  // 컬럼의 값을 증가하면서 확인하기 위함
         }  // foreach end?>
    <?php
     } // while end ?>

 

이렇게 변경해서 해보세요

질문이 이해가 잘 안 가지만 짐작으로...
        <tr>
<?php for( $j=1; $j<14; $j++) { ?>
            <th>항목명 <?php echo $j ?></th>
            <td><input type="text" name="item_<?php echo $j ?>" value="<?php echo $row['item_'.$j] ?>" class="frm_input"></td>
            <th>값 <?php echo $j ?></th>
            <td><input type="text" name="item_value_<?php echo $j ?>" value="<?php echo $row['item_value_'.$j] ?>" class="frm_input"></td>
<?php } ?>
        </tr>

아니요 항목추가 / 삭제로 for문으로 14 라는 갯수가 정해진 상태가 아니라서 while 문을 사용할려고 합니다.

14 15 16 늘려서 저장을 해서 그것까지 불러올려고 합니다. 

 


 

<?php 
    $sql = " select * from `order_list_naver` ";
    $result = sql_fetch($sql);
    $i = 1;
    while($row=sql_fetch_array($result)) { 
        
        if( $row['item_value_'.$i] != "" ) {
?>
            <tr>
                <th>항목명 <?php echo $i ?></th>
                <td><input type="text" name="item_<?=$i?>" value="<?=$row['item_'.$i]?>" class="frm_input"></td>
                <th>값 <?php echo $i ?></th>
                <td><input type="text" name="item_value_<?=$i?>" value="<?=$row['item_value_'.$i] ?>" class="frm_input"></td>
            </tr>
<?php
        }
$i++;
}
?>

 

답변을 작성하시기 전에 로그인 해주세요.
전체 3

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT