쿼리 질문 드려요

쿼리 질문 드려요

QA

쿼리 질문 드려요

본문

쿼리 돌린 후 input value 에 넣으려는데 안돼요

봐주세요.

 

<?php
  $sql1 = "select * from g5_write_type where ca_name like '삼각형' order by wr_subject asc";
   $result1 = sql_query($sql1);
    while ($row1 = sql_fetch_array($result1)) {
    $row1[wr_subject];
    }
   
   $sql2 = "select * from g5_write_type where ca_name like '사각형' order by wr_subject asc";
   $result2 = sql_query($sql2);
    while ($row2 = sql_fetch_array($result2)) {
    $row2[wr_subject];
    }
      
  $type1 = $row1[wr_subject];
  $type2 = $row2[wr_subject];
  
  $type_a = $type1."|".$type2;
 ?>
  <input type="text" id="wr_10" value= "<?php echo $type_a ?>">

 

이 질문에 댓글 쓰기 :

답변 4

모두를 구분자 "|"로 가져오는걸로 수정해드릴께요.


<?php
  $sql1 = "select * from g5_write_type where ca_name like '%삼각형%' order by wr_subject asc";
   $result1 = sql_query($sql1);
    while ($row1 = sql_fetch_array($result1)) {
      if($type1) $type1.="|";
      $type1 .= $row1[wr_subject];
    }
   
   $sql2 = "select * from g5_write_type where ca_name like '%사각형%' order by wr_subject asc";
   $result2 = sql_query($sql2);
    while ($row2 = sql_fetch_array($result2)) {
      if($type2) $type2.="|";
      $type2 .= $row2[wr_subject];
    }
      
  $type_a = $type1."|".$type2;
 ?>

 

문법오류와 논리오류가 있습니다.


<?php
  $sql1 = "select * from g5_write_type where ca_name like '삼각형' order by wr_subject asc";
   $result1 = sql_query($sql1);
    while ($row1 = sql_fetch_array($result1)) {
    $row1[wr_subject];     // <-- 이 변수는 어디에 대입을 하시려고 하나요?
                                // 그리고 Loop 입니다.
    }
   
   $sql2 = "select * from g5_write_type where ca_name like '사각형' order by wr_subject asc";
   $result2 = sql_query($sql2);
    while ($row2 = sql_fetch_array($result2)) {
    $row2[wr_subject];     // <-- 이 변수도 어디에 대입을 하시려고 하나요?
                                // 그리고 Loop 입니다.
    }
      
  $type1 = $row1[wr_subject];    // 위에 서 수행한 최종 $row1 의 wr_subject 만 들어갑니다.
                                  // 하지만 마지막 문장을 수행하고 다음것을 대입한 후라 값이 없을겁니다.
  $type2 = $row2[wr_subject];
  
  $type_a = $type1."|".$type2;
 
   // 위 두문장에 내용이 없어서 결국 $typq_a 도 값이  | 만 있겠네요
 ?>

 

쿼리가 문제가 아니라.

 

어떻게 하시고자 하는지 정리부터하는게 먼저입니다.

 

위에서 like '삼각형' 은 

 = '삼각형' 과 동일하게 작동합니다.

즉, 앞뒤에 뭐가 있으면 안되고 값이 딱 '삼각형'만 검색됩니다.

 

 

like '%삼각형%' 하면 '삼각형'을 포함한 모든 레코드를 검색합니다.

 

sql_fetch_array 는 모든 검색된 Row들을 다 looping 합니다.

 

따라서 만들어서 구현하고자 하는 방법이나

요건이 명확하지 않고

이렇게 

 

다 훓어서 조건도 없이 최종값만 대입하면

 

뭐가 들어갈지 아무도 모르고 매번 결과값이 상이해집니다.

 

loop 안에서 if문으로 판단하는 조건을 만들던지

Sql자체를 1row만 나오게 하던지

 

원하는 형태를 명확하게 설계하신뒤에 다시 질문하시는게 낫겠습니다.

자세한 설명 너무 감사 드립니다.
말씀하신 대로 값이 없이 나오고 있습니다.

제가 하고자 하는 것은
ca_name '삼각형' 인 wr_subject 모두와
ca_name '사각형' 인 wr_subject 모두를
각각 가져와서 $type_a 에서 합친 후
<input type="text" id="wr_10" value= "<?php echo $type_a ?>"> 으로 뽑는 것입니다.

like %'삼각형 식으로

와일드카드를 사용해야하지 않나요

while 문 안에서만 변수가 적용됩니다.

그리고 각 while 문당 2개 이상의 제목은 어떻게 연결하실 건가요??

지금 처럼 하면 제일 마지막 하나만 변수에 저장됩니다.


<?php
  $sql1 = "select * from g5_write_type where ca_name like '%삼각형%' order by wr_subject asc";
   $result1 = sql_query($sql1);
    while ($row1 = sql_fetch_array($result1)) {
      $type1 = $row1[wr_subject];
    }
   
   $sql2 = "select * from g5_write_type where ca_name like '%사각형%' order by wr_subject asc";
   $result2 = sql_query($sql2);
    while ($row2 = sql_fetch_array($result2)) {
      $type2 = $row2[wr_subject];
    }
      
  $type_a = $type1."|".$type2;
 ?>

설명 진심 감사 드립니다.

아래처럼 하면
while($row1 = sql_fetch_array($result)) {
echo "$row1[wr_subject]";
                      }
결과가 나오기는 하는데요.
$type_a 로 넘어가지가 않아서 질문 드렸던 거였습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 128
QA 내용 검색

회원로그인

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