테스트 사이트 - 개발 중인 베타 버전입니다

sql 질문좀 드려요 채택완료

morrie 5년 전 조회 1,777


$que = sql_query($sql);
                print_r2($que);
                while ($row = sql_fetch_array($que)) {
     $sql2 = "select * from ".$g5['te_table']." where (1) and idx = '".$row['t_idx']."'";

 

te 테이블에는 idx 필드가 있고 product 테이블에는 t_idx가 있는데

select트 문에서 te 테이블에서 te 테이블의 idx 와 product 테이블의 t_idx가 같은 행값을 불러오라고 하는것 같은데 저렇게 할땐 join 을 써서 가져오는거 아닌가요?

여기서 이해가 안되는게 and와 $row 인데 이것좀 설명해주세요...

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

while($row = sql_fetch_array($que))

$row 는 $que 쿼리문에 대한 while 반복문의 1행 값을 갖습니다.

$que 쿼리문이 만족할때까지 반복문은 실행이 됩니다.

(1) and

and 가 이 부분을 말씀 하시는 것 같은데요 (1) 은 아무러 역활을 못하는 거짓 쿼리문인데

일종에 php의 if 문을 좀더 편리하게 활용하기 위해서 선언된 것이구요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

m
morrie
5년 전
답변 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

아 이걸거 햇갈리는수 있는데 (1) 이건 언제나 true ,

$row 결과행 객체입니다. 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

join 을 쓰는 것이 더 바람직한/효율적인 방법입니다.

 

※ https://sbumseo.tistory.com/84">https://sbumseo.tistory.com/84

 

</p>

<p>$sql = "

  select t_1.*, t_2.*

    from {$g5['product_table']} as t_1

           inner join {$g5['te_table']} as t_2 on t_1.t_idx = t_2.idx      

";</p>

<p> </p>

<p>$result = sql_query($sql);</p>

<p> </p>

<p>while ($row = sql_fetch_array($result)) {

    print_r2($row);

}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

m
morrie
5년 전
답변 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인