채택완료

제품 집계 문의드립니다.

2022-08-30 (화) 14:34:16 1,770
Copy
<tr><td>
<select name="wr_11[]">
    <option value="딸기">딸기</option>
    <option value="바나나">바나나</option>
    <option value="레몬">레몬</option>
    <option value="수박">수박</option>
</select>
<input value="wr_12[]" value="">수량</input>
</td></tr>
<tr><td>
<select name="wr_11[]">
    <option value="딸기">딸기</option>
    <option value="바나나">바나나</option>
    <option value="레몬">레몬</option>
    <option value="수박">수박</option>
</select>
<input value="wr_12[]" value="">수량</input>
</td></tr>

위와 같이 제품과 수량을 입력받습니다.

Copy
$sql = "
    select
    group_concat(wr_11 separator '||') wr_11, 
    group_concat(wr_12 separator '||') wr_12
    from {$write_table}

";
$result = sql_query($sql, true);
while ($row = sql_fetch_array($result)) {
    $lists[] = $row;
    $cnt = count($lists);
}
print_r2($lists);


결과값

Array
(
    [0] => Array
    (
        [wr_11] => 딸기||딸기||바나나||바나나||딸기||레몬||수박
        [wr_12] => 4||4||4||10||4||1||1
    )
)

이걸...

딸기||바나나||레몬||수박
12||14||1||1

이렇게 순위를 매기고 싶은데.. 어떻게 변경해야 합산이 되어서 집계를 낼 수 있을까요?

답변 2개 / 댓글 1개

채택된 답변
+20 포인트
2022-08-30 (화) 14:48:29

https://www.php.net/manual/en/function.ksort.php

https://www.php.net/manual/en/function.array-combine.php

이 두 개를 활용하시면 될 듯합니다.

그런데 그냥

딸기[ 갯수 ]
바나나[ 갯수 ]
레몬 [ 갯수 ]
수박 [ 갯수 ]

이렇게 <input만 하는 것이 더간결하지 않을까요?

답변에 대한 댓글 1개

말씀하신것처럼 나오는게 가장 간결할거 같습니다.
알려주신 사이트를 한번 확인해 보겠습니다.
Copy
while ($row = sql_fetch_array($result)) {
    $lists[$row['wr_11']] = $lists[$row['wr_11']] + $row['wr_12'];
    $cnt = count($lists);
}

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