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

foreach 값에 금액도 포함시키고 싶습니다. 채택완료

예서제이 3년 전 조회 1,859

입력값

<tr><td>

<select name="wr_12[]">

    <option value="딸기">딸기</option>

    <option value="감자">감자</option>

    <option value="레몬">레몬</option>

    <option value="수박">수박</option>

</select>

<input value="wr_21[]" value="">수량</input>

<input value="wr_26[]" value="">금액</input>

</td></tr>

<tr><td>

<select name="wr_12[]">

    <option value="딸기">딸기</option>

    <option value="감자">감자</option>

    <option value="레몬">레몬</option>

    <option value="수박">수박</option>

</select>

<input value="wr_21[]" value="">수량</input>

<input value="wr_26[]" value="">금액</input>

</td></tr>


php

$sql = "

        select

            group_concat(wr_12 separator '||') wr_12,

            group_concat(wr_21 separator '||') wr_21,

            group_concat(wr_26 separator '||') wr_26

          from {$write_table}

             where wr_29 between '{$stx1}' and '{$stx2}'

            ";

        $result = sql_query($sql, true);

        while ($row = sql_fetch_array($result)) {

            $list_product = explode('||',$row['wr_12']);

            $list_volume = explode('||',$row['wr_21']);

            $list_money = explode('||',str_replace(',', '', $row['wr_26']));

            

            $result_array = array();

            foreach ($list_product as $key=>$val)

            {

                $result_array[$list_product[$key]] += $list_volume[$key];

            }

            arsort($result_array);</p>

<p>                foreach ($result_array as $key=>$val) { ?>

        <tr>

            <td><?php echo $key; ?></td>

            <td><?php echo $val; ?></td>

        </tr>

        <?php } }  ?>

도움을 받아서 원하는 결과값이 나왔습니다.

품명     수량      금액
딸기    12
멜론    14
수박    1
감자    1


여기에서 금액을 더 추가하고 싶은데 금액은 어떻게 해야 하나요?
개수만 더해지면 다른건 쉽게 붙일수 있을거 같았는데.. 너무 어렵네요 ㅠㅠ

금액은 $list_money 입니다.

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

답변 2개

채택된 답변
+20 포인트
3년 전

</p>

<p><?php

$sql = "

        select

            group_concat(wr_12 separator '||') wr_12,

            group_concat(wr_21 separator '||') wr_21,

            group_concat(wr_26 separator '||') wr_26

          from {$write_table}

             where wr_29 between '{$stx1}' and '{$stx2}'

";

$result = sql_query($sql, true);

while ($row = sql_fetch_array($result)) {

    $list_product = explode('||',$row['wr_12']);

    $list_volume = explode('||',$row['wr_21']);

    $list_money = explode('||',str_replace(',', '', $row['wr_26']));

    

    $result_array = array();

    foreach ($list_product as $key=>$val)

    {

        if (isset($result_array[$list_product[$key]]) == false) {

            $result_array[$list_product[$key]] = array(0, 0);

        }

        $result_array[$list_product[$key]][0] += $list_volume[$key];

        $result_array[$list_product[$key]][1] += $list_money[$key];

    }

    arsort($result_array);

        foreach ($result_array as $key=>$val) { ?>

<tr>

    <td><?php echo $key; ?></td>

    <td><?php echo $val[0]; ?></td>

    <td><?php echo $val[1]; ?></td>

</tr>

<?php } }  ?></p>

<p>

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

답변에 대한 댓글 1개

예서제이
3년 전
감사합니다.
$val[1] 값으로 정렬을 시킬려면 어떻게 수정해야 하나요?

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

지금까지 질문 내용을 보았는데

왠지 어려운 방식으로 해결하는 듯 보입니다.

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

답변에 대한 댓글 6개

예서제이
3년 전
안녕하세요.
더 나은 방식이 있는건가요?

있다고 하시면 다시 Q&A 게시판에 글을 남기겠습니다.
엑스엠엘
3년 전
최종 원하시는 내용이 무엇인지요?
처음부터 이런 내용과 합게 질문 글을 올리시는 것이 좋습니다.
예서제이
3년 전
질문에 있드시 wr_12가 제품명, wr_21이 수량, wr_26이 금액이고

이걸 통계를 내는게 목표였는데 어찌되었던 지금 원하는 값은 나온듯 합니다.

품명 수량 금액
딸기 12 60,000
멜론 14 154,000
수박 1 3,000
감자 1 2,000

이렇게 나오길 원했었습니다.
엑스엠엘
3년 전
어떤 자료를 게시판에 등록?하시고
어떤 목적으로 또 통계를 내는지 등등
그런 내용이 있었으면 했었습니다.
예서제이
3년 전
입력값은 게시글에 있는게 전부입니다.
그냥 제품을 주문하는 형식입니다.
이런식으로 제품명과 크기, 제품 수량과 금액, 비고내용이 들어가 있고..
<tr><td>
<select name="wr_12[]">
<option value="딸기">딸기</option>
<option value="감자">감자</option>
<option value="레몬">레몬</option>
<option value="수박">수박</option>
</select>
<select name="wr_13[]">
<option value="대">소</option>
<option value="중">소</option>
<option value="소">소</option>
</select>
<input value="wr_21[]" value="">수량</input>
<input value="wr_26[]" value="">금액</input>
<input value="wr_27[]" value="">비고</input>
</td></tr>
<tr><td>
<select name="wr_12[]">
<option value="딸기">딸기</option>
<option value="감자">감자</option>
<option value="레몬">레몬</option>
<option value="수박">수박</option>
</select>
<select name="wr_13[]">
<option value="대">소</option>
<option value="중">소</option>
<option value="소">소</option>
</select>
<input value="wr_21[]" value="">수량</input>
<input value="wr_26[]" value="">금액</input>
<input value="wr_27[]" value="">비고</input>
</td></tr>


통계내는 목적은 월단위, 주단위로 통계를 내기 위한 목적입니다.
어떤 제품이 많이 팔렸는지 등등
말 그대로 가장 많이 팔린 제품, 그 제품의 개수, 금액 등등을 확인하기 위함입니다.
엑스엠엘
3년 전
주문이 목적이군요.
매 주문마다 가격이 달라지나 보군요.
쉽게 하자면
wr_21~28까지
딸기 수량, 주문 금액
멜론 ", "
수박 " , "
감자 " , "
이렇게 값을 저장하면 될 듯 합니다.

제대로 하자면
주문 테이블을 따로 만드시는 것이 좋습니다.

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

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

로그인