게시판 리스트에서 여분필드 값의 총합 구하기 질문입니다.
본문
안녕하세요.
모든 게시물 wr_2에 금액이 입력되어 있습니다.
이걸 리스트에서 총합으로 불러오고 싶은데,
게시물 전체의 wr_2의 총합은
<?php $total2 = sql_fetch(" select sum(wr_2) as sum2 from $write_table "); echo number_format($total2['sum2']); ?>
이렇게 불러오는걸 검색해서 알고 있습니다.
그런데,
게시판 전체가 아닌 현재 페이지에 보여지는 wr_2의 총합만 불러오려고 합니다.
검색해 보니
for문 안에
$tot_price += $list[$i]['wr_2'];
넣고,
for문 루프 끝나는 곳에
<?php echo $tot_price; ?> 이렇게 넣으면 현재 페이지의 총합이 나오긴 합니다.
그런데 약간의 문제가 있어서 질문드립니다.
1.
wr_2에 입력된 값이 콤마(,)가 있어서, 계산 시 콤마(,) 앞자리 숫자만 계산이 됩니다.
예) 100,000 / 50,000 / 70,000 이 입력되어 있다면,
총합의 값이 220,000 이 아닌 220 으로 나옵니다.
전체 총합, 현재 페이지 총합 둘 다 콤마 적용되어 계산되게 할 수 있을까요?
2.
현재 페이지에 보여지는 총합의 경우
총합을 불러오는 위치가 for문 루프 끝나는 곳에 입력해야 제대로 나와서 게시판 하단에 위치하는데,
전 게시판 상단에(for문 전) 위치하고 싶은데, 방법이 없을까요?
3.
이건 제가 아직 찾지 못한 건데,
게시판에서 검색을 했을 경우 검색한 내용이 한 페이지가 아닌 몇 페이지에 걸쳐 나올 때가 있는데,
현재 페이지가 아닌 이 검색된 게시물만의 wr_2의 총합을 불러오는 건 어려울까요?
아시는 분 답변 부탁드립니다.
감사합니다.
답변 6
콤마없애고 합계 후 다시 콤마찍기
select format(sum(replace(wr_2,",","")),0) as sum2 from $write_table
<script>
total_number = 0;
<?php for ($i=0; $i<count($list); $i++) echo "total_number += Number(('".$list[$i]['wr_2']."').replaceAll(',', ''));"; ?>
document.write(total_number);
</script>
1. php 콤마제거후 합산하고 ex) str_replace() 사용
number_format으로 콤마다시추가
2. php tot_price 변수를 javascript 변수에 넣어서 html에 넣는방법이있겠네요
3. 따로 합산쿼리를 추가해야겠네요
for문 위에다가 print_r($sql) 쳐보시면 쿼리가나올겁니다
검색후 쿼리 참고해서 select sum(wr_2) as wr_2_sum from ___ where 검색쿼리~ 이런느낌
3번을 쿼리추가해서 해결하면 1,2번이 자연스럽게 해결되긴하겠네요
음 리스트 페이지에서 현재 페이지의 wr_2 총 합을 구하려면
제가 생각하는 방법은 sql 쿼리는 건드리지않고.... 스크립트로 구현할것 같아요;;
<span class="sum-item sound_only"><?php echo str_replace(',', '', $list[$i]['wr_2']); // 콤마 제외 숫자만 가져옴 ?></span>
이런식으로 각 게시글 li 거나 tr 이거나 안에 눈에 보이지않는 데이터를 불러와서
스크립트로 .sum-item 에 담긴 숫자들의 합을 구해서 상단에 대입해줄 것 같아요...;;
!-->다음과 같은 방법도 있으니 참고해보세요
Q1. 콤마(,)가 포함된 숫자 계산
// 그누보드 게시물에서 wr_2 값을 가져옴
$wr_2 = "100,000";
// 콤마(,)를 제거
$wr_2 = str_replace(",", "", $wr_2);
// $wr_2를 정수로 변환
$wr_2 = intval($wr_2);
// 다른 숫자와 계산
$total = $wr_2 + 50000 + 70000;
// 결과 출력
echo "총합: " . number_format($total); // 콤마 포함 숫자 출력
Q2. 현재 페이지에 보여지는 총합 위치 변경
// 게시판 상단에 총합 표시
$board_total = 0;
// 그누보드 게시물을 루프로 돌면서 각 게시물의 wr_2 값을 가져와서 더함
foreach ($board_posts as $post) {
$wr_2 = intval(str_replace(",", "", $post['wr_2']));
$board_total += $wr_2;
// 게시물 내용 표시
// ...
}
// 게시판 상단에 총합 표시
echo "게시판 상단 총합: " . number_format($board_total);
Q3. 검색된 게시물의 wr_2 총합
// 검색 결과 게시물의 wr_2 총합 초기화
$search_total = 0;
// 그누보드 검색 결과를 루프로 돌면서 각 검색된 게시물의 wr_2 값을 가져와서 더함
foreach ($search_results as $result) {
$wr_2 = intval(str_replace(",", "", $result['wr_2']));
$search_total += $wr_2;
// 검색 결과 표시
// ...
}
// 검색된 게시물의 wr_2 총합 출력
echo "검색 결과 총합: " . number_format($search_total);
$list[$i]['wr_2'] = number_format($list[$i]['wr_2'], 0, '.', '');
이렇게 변수를 바꾼 후 합산해 보세요.