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

Mysql 기초적인듯한 질문 하나 드려도 될까요? 채택완료

모제코 3년 전 조회 4,266

질문1> non-numeric 오류가 나네요.

 

$query = sql_query("SELECT wr_2 FROM g5_write_bbs1"); while($rows = sql_fetch_array($query)) {    $rows['wr_2'] = preg_replace("/[^0-9]/", "",$rows['wr_2']);    $total_amount += $rows['wr_2']; }

 

이렇게 했더니 결과물이 나오긴 하는데 이런 오류가 나오네요.

 

Warning: A non-numeric value encountered in /head.php on line 31

 

질문2> bbs1에 bbs2도 같이 검색하고 싶어요.

 

그래서 SELECT wr_2 FROM g5_write_bbs1 쿼리 뒤에 union SELECT wr_2 FROM g5_write_bbs2 이렇게 했는데 아무런 반응이...

 

두가지 잘문에 팁 좀 구할 수 있을까요?

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

답변 3개

채택된 답변
+20 포인트

질문1)

     . 디비의 형타입을 int 형으로 바꾸시든지

     . (int)$total_amount += (int)$rows['wr_2'];  이런식으로 하시든지

     . 상단에 $total_amount = 0; 으로 초기화를 해주시든지

     . warning 는 노출안되게 하시면됩니다

 

질문2) select a.wr_2 , b.wr_2 from g5_write_bbs1 as a inner join g5_write_bbs2 as b on a.wr_id = b.wr_id  의 형태로 하시면 됩니다

          

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

답변에 대한 댓글 1개

모제코
3년 전
답변 너무 감사합니다.
질문1) 부분은 그런 선언이 필요하군요. 한수 배워갑니다.

질문2)에서 wr_id(글번호)가 같은것을 뽑는 것 같은데 wr_id와 상관없이 두 게시판의 wr_2를 뽑으려면 on a.wr_id = b.wr_id 부분을 빼면 될까요?

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

wr_2 합계를 구하는 것이 목적이라면

g5_write_bbs2.wr_2, g5_write_bbs1.wr_2를 모두 int 타입으로 변경하시고

 

$query = sql_query("sELECT 'bb1s' bo_table, sum(wr_2) wr_2 FROM g5_write_bbs1 union

sELECT 'bb2s' bo_table, sum(wr_2) wr_2 FROM g5_write_bbs2 ");

하시면 됩니다.

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

답변에 대한 댓글 6개

모제코
3년 전
답변 너무 감사합니다.
혹시 sELECT 'bb1s' bo_table 에서 'bb1s'가 어떤 의미를 지니는지 여쭤봐도 될까요?
엑스엠엘
3년 전
union 하면 두 건이 나오기 때문에
구별하기 위해서 넣는 것입니다.
엑스엠엘
3년 전
$query = sql_query("sELECT 'bb1s' bo_table, ifnull( sum(wr_2),0) wr_2 FROM g5_write_bbs1 union

sELECT 'bb2s' bo_table, ifnull( sum(wr_2),0) wr_2 FROM g5_write_bbs2 ");

이게 더 좋겠군요.
모제코
3년 전
2개의 보드에서 변수를 가져오는것이니 이를 구분하는 변수로 지정하는 셈인 듯 하네요.
그렇다면 while($rows = sql_fetch_array($query)) 를 하게 됐을때도
그냥 단순하게 $query로 날리면 안되겠네요?
엑스엠엘
3년 전
while($rows = sql_fetch_array($query)) {
echo '<pre>';
print_r( $rows);
}
하셔서 확인해 보시는 것이 이해가 빠를 듯합니다.
모제코
3년 전
네 자세한 답변 너무 감사합니다.
잘 참고해서 분석해보겠습니다.

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

wr_id 상관없이 하시려면

union all 하시면 됩니다 

 

뒤에 비교 조건 빼시고요

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

답변에 대한 댓글 1개

모제코
3년 전
네 union all 로 대입해서 고민해보겠습니다.

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

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

로그인