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 늘려서 저장을 해서 그것까지 불러올려고 합니다. 

 

무엇 때문이 이런 것이 필요한지 모르겠습니다만
DB 테이블에서
모든 record는 같은 컬럼을 갖습니다.
어디는 10개, 어디는 15개 그렇게 되는 DB는 mongoDB 같은 것이 있습니다.


 

<?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++;
}
?>

 

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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